BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース クライアントサイドのビデオ編集の新しい提案

クライアントサイドのビデオ編集の新しい提案

原文(投稿日:2020/05/24)へのリンク

Melanie Richards氏は、MicrosoftのEdgeチームが取り組んできたクライアント側のビデオ編集の提案について話し合った。この提案は、Web Platform Incubator Community Group(WICG)でインキュベーション段階にある。この提案は、劇的に高速なクライアント側のビデオ編集エクスペリエンスとより優れたパフォーマンスを実現することを目的としている。提案されたインターフェースには、ビデオをトリミングおよび連結するためのメソッドが含まれている。

Richards氏は、新しい提案の背景にある動機を説明した。

[私たちは]使い慣れたユースケースをより効率的な方法で解決しようとしています。メディアパートナーから、Web上で低遅延のメディアエクスペリエンスを提供することには課題があると聞きました。サーバ側のルートに行くと、サーバは高価になり、[待ち時間が長くなる]可能性があります。[…]クライアント側では、2時間のビデオの編集を処理するのに2時間かかる場合があります。 […]これに対処するために、トリミングや連結などのクライアント側のメディア編集を可能にするMediaBlog APIのプロトタイプを作成しました。

クライアント側のビデオ編集の提案はWICGでインキュベートされ、このテクノロジーを必要としている企業のフィードバックを取り入れて開発されている。初期の実験は、Microsoftを親会社とするソーシャル学習企業のFlipGridで実施されており、処理速度が劇的に向上していることが示されている。

ソーシャルラーニングサイトFlipGridで使用されている[初期のプロトタイプ]は、提案されたクライアント側APIを使用したビデオ編集が、標準のアプローチより4倍速く、3秒の処理から768ミリ秒になることを示しています。

この提案では、通常のBlob (Binary Large OBject)インターフェイスを拡張するMediaBlobインターフェイスを導入されている。そして、提案されたメディア編集操作をバッチ処理するために使用されるMediaBlobOperationインターフェイスが導入されている。MediaBlobOperationインターフェイスには、このニュースの発行日時点のものとして、ビデオのトリミング、分割、連結の3つの操作のメソッドが含まれている。

トリミング操作には、開始時間と終了時間が必要である。MediaBlobで実行すると、パラメーター化された時間間隔に属する元のMediaBlobのコンテンツを保持し、残りが破棄されたMediaBlobを返す。

splitメソッドを使用すると、作成者は、パラメーターとして渡される特定の時点でBlobを2つの別々のMediaBlobに分割できる。concatメソッドを使用すると、開発者は2つのMediaBlobを取得して連結できる。

3つの操作はデフォルトでバッチ処理され、メソッドを呼び出しても操作は実行されない。MediaBlobOperationインターフェースは、操作の実行をトリガーするfinalizeメソッドを定義している。

let mbo = new MediaBlobOperation(new MediaBlob(blob));
mbo.trim(4000, 360000);
mbo.concat(new MediaBlob(blob2));
mbo.finalize().then(function(mediaBlobs) {
    // mediaBlobs[0] will be a concatenated MediaBlob of (trimmed) blob1 and blob2 
});

前述のサンプルコードは、BlobをMediaBlobに変換し、そこからMediaBlobOperationを構築するプログラムを示している。finalizeメソッドを実行すると、クライアント側ランタイムはBlobの開始時点から、4秒から6分(360秒)の間のコンテンツを抽出し、それに2番目のBlobを連結して、その結果に対してコールバック関数を実行する。

BlobインターフェイスはFile APIの提案(W3Cによってホストされている)で導入され、不変の生のバイナリデータを表し、Blobオブジェクト内のバイト範囲に個別のBlobとしてアクセスできるようにする。

Web Platform Incubator Community Group(WICG)は、新しいWebプラットフォーム機能を提案および議論するための気軽な場を提供する。WICGは、World Wide Web Consortium(W3C)に付属している。W3Cは、Webの長期的な成長を保証するためのオープンスタンダードを開発する国際的なコミュニティである。

この記事に星をつける

おすすめ度
スタイル

BT