Media API で多重ビットレート ストリーミング用の動画を作成する

Product
Video Cloud
対象となる役割
開発者
バージョン
Brightcove 5
モジュール
Media API
エディション
Pro, Enterprise

多重ビットレート ストリーミングは Video Cloud の機能です。視聴者側の接続速度に最も適した解像度およびビットレートの動画を配信できるので、視聴者の使用感が向上します。メディア ライブラリ内の各動画に対して、解像度とビットレートの異なる 1 本以上のレンディションを作成することができます。Video Cloud プレーヤでは、プレーヤのサイズと、各レンディションの解像度とビットレートが考慮され、視聴者側のダウンロード接続速度に適したレンディションのうち最も高品質のものが自動的に表示されます。

Video Cloud Media API の create_video メソッドで動画を作成するときには、多重ビットレート ストリーミングのために、動画に対して複数のレンディションをオプションで作成することができます。VP6(FLV)形式にエンコードするか、H.264(MP 4)形式にエンコードするかを選択することもできます。

Media 書き込み API が利用できるのは、Video Cloud Pro エディションと Enterprise エディションをご利用の方のみです Video Cloud アカウントのアップグレードについては、 ブライトコーブにお問い合わせください。

create_video を使用して複数のレンディションを作成する

VP6(.flv)にエンコードされていないファイルをアップロードすると、Video Cloud では多重ビットレート ストリーミングのために、動画に対して複数のレンディションを作成します。これは、create_video メソッドのオプションである create_multiple_renditions 引数によって制御されます。create_video のシグネチャは以下のとおりです。

create_video(token:String, video:Video, filename:String, maxsize:Long, file:InputStream,
   file_checksum:String, encode_to:String, create_multiple_renditions:Boolean,
   H264NoProcessing:Boolean, preserve_source_rendition:Boolean):Long

たとえば、複数のレンディションを持つ動画を作成するには、次のように http://api.brightcove.co.jp/services/post に通知します。

{"method": "create_video",
 "params": {"token" : "riBfgveLvpRb-rHGiBBouSAXs-Q8NmphGxt0z04kE.",
             "video" : myVideo,
             "filename":"miamiMoon.mov",
             "create_multiple_renditions" : true}}

create_video メソッドに渡されたファイルが、サポート対象かつ VP6 以外の動画ファイル タイプであり、さらに create_multiple_renditions=true である場合、Video Cloud では、ビットレートやサイズなどのトランスコード設定を使用して、そのファイルをアカウント向けに複数のファイルへトランスコードします。VP6 でエンコードされたファイルを渡すと、Video Cloud は複数のレンディションをトランスコードしないことに注意してください。その場合、create_multiple_renditions=true 引数を設定すると、create_video メソッドはエラーを返します。create_multiple_renditions=false と設定すると、標準のビットレートとサイズで VP6 にトランスコードしたファイルが 1 つだけ生成されます。詳細は、「多重ビットレート ストリーミングを使用する」を参照してください。Media モジュールでは、アップロードするファイルのサイズに 2 GB という制限があります。

エンコーディングを選択する

Video Cloud は、FLV 以外のソース動画を FLV(VP6)または MP4(H.264)にエンコードできます。create_video メソッドの encode_to 引数が、出力のエンコーディングを制御します。VP6(.flv)の出力には FLV に、H.264 の出力には MP4 に encode_to を設定します。

H.264 ソース動画で動画を作成する

元のファイルで H.264 エンコーディングを使用している場合、そのファイルを多重ビットレート ストリーミング レンディションの 1 つとして使用できます。これは、create_video メソッドのオプションである preserve_source_rendition 引数によって制御されます。create_multiple_renditions=true および preserve_source_rendition=true と設定すると、複数のレンディションを作成しながら、元の H.264 ファイルを 7 つ目のレンディションとして保持できます。元のファイルが H.264 でエンコードされていない場合、preserve_source_rendition 引数は無視されます。

H.264 ソース ファイルから、レンディションが 1 つだけの動画を作成するよう指定することもできます。H264NoProcessing=true と設定すると、create_video と共にアップロードした H.264 ソース ファイルは、複数のレンディションにトランスコードされません。

以下のフローチャートでは、create_video メソッドのパラメータである create_multiple_renditionspreserve_source_rendition のインタラクションを示しています。

H.264 ソース ファイルをレンディションとして保存する

動画レンディションを取得する

多重ビットレート ストリーミング用の複数のレンディションが動画にある場合は、動画の renditions プロパティを通してそれらにアクセスできます。このプロパティは Rendition オブジェクトの配列であり、その各オブジェクトが、動画の 1 つの多重ビットレート ストリーミング レンディションを表します。詳細は、「Media API で動画コンテンツにアクセスする:多重ビットレート ストリーミング レンディションにアクセスする」 を参照してください。

Media API でサムネイルおよび静止画像を作成する

Video Cloud がソース動画をトランスコードする場合は必ず、動画のサムネイルおよび静止画像が作成されます。つまり、ソース動画が VP6 以外の動画である場合は必ず、create_video 呼び出しへの応答としてサムネイルおよび静止画像が作成されます。ただし、ソース動画が H.264 であって、create_multiple_renditions=false および preserve_source_rendition=true と設定している場合は除きます。これらの画像は、動画にて 50% マークでサンプル フレームを取得することにより作成されます。これらの画像を自分で選択した他の画像を交換できます。それには、画像キャプチャ ツールまたは Media モジュールの [Edit Video] ダイアログ、あるいは Media API の add_image メソッドを使用します。

タグ
高画質, Media API 書込みメソッド