多重ビットレート ストリーミングをバッチ プロビジョニングと使用する

Product
Video Cloud
対象となる役割
パブリッシャ, 開発者
バージョン
Brightcove 5
エディション
Pro, Enterprise

このトピックでは、Media モジュールではなく FTP バッチ プロビジョニング機能を利用して動画をアップロードする場合の多重ビットレート ストリーミング機能の使用方法について説明します。FTP バッチ プロビジョニングを使用して動画をアップロードする場合には、Media モジュールで動画をアップロードする場合と同じオプションが利用できます。アップロードするソース ビデオの形式は、Media モジュールでのアップロードでサポートされる形式であれば何でもかまいません。また、エンコーディングは VP6 (FLV) または H.264 (MP4) のいずれかになります。多重ビットレート ストリーミングのしくみ、および Media モジュールでアップロードした非 FLV マスタ動画ファイルに対して多重ビットレート ストリーミング機能を利用する方法については、多重ビットレート ストリーミング機能を利用するを参照してください。Brightcove によるアップロードの取り扱いをコントロールする XML マニフェストを作成する方法の説明など、FTP バッチ プロビジョニングに関する概要は、FTP アップロード システムを使用するを参照してください。

バッチ プロビジョニングが利用できるのは、Brightcove Pro エディションと Enterprise エディションをご利用の方のみです。 Brightcove アカウントのアップグレードについては、Brightcove にお問い合わせください。

FTP バッチ プロビジョニングを使用してファイルをアップロードする場合、多重ビットレート ストリーミングのために Brightcove でファイルを複数のレンディションにトランスコードするか、自分でトランスコードするかを選択できます。

バッチ プロビジョニングでのトランスコード オプション

このセクションでは、FTP バッチ プロビジョニング システムを使用して動画をアップロードする場合の、トランスコードを指定するためのオプションについて説明します。FTP バッチ プロビジョニング マニフェストの asset タグで、動画に適用するトランスコード オプションを指定できます。

トランスコードを有効化する

アップロードした動画を Brightcove の適応エンコーディング エンジンでトランスコードするよう指定するには、asset タグの encode-to 属性を使用します。動画を VP6 (FLV) にトランスコードするには、以下を行います。

<asset encode-to="FLV" ... > ... </asset>

動画を H.264 (MP4) にトランスコードするには、以下を行います。

<asset encode-to="MP4" ... > ... </asset>

複数のレンディション

Brightcove の適応エンコーディング エンジンが、アップロードした動画から複数のレンディションを作成するよう指定するには、asset タグの encode-multiple 属性を使用します。

<asset encode-multiple="true" ... > ... </asset>

デフォルトは false です。したがって、この属性が設定された場合を除き、Brightcove は単一動画アセットにトランスコードします。この属性は、encode-to 属性と組み合わせて使用します。

マスタ H.264 動画を保存する

動画アセットとして元の動画ファイルのコピーを保管するには、h264-preserve-as-rendition 属性を使用します。この属性は、encode-to 属性と組み合わせて使用します。また、encode-multiple は true でなければなりません。h264-preserve-as-rendition 属性のデフォルト値は false です。

<asset
     encode-to="MP4" 
     encode-multiple="true" 
     h264-preserve-as-rendition="true" ... >
      ... 
</asset>

ソース ファイルは、有効な H.264 動画でなくてはなりません。ソース ファイルのレンディションを複数作成しますが、ソース ファイルは保存しておき、それを別のレンディションとして使用します。このオプションは、最高品質の動画を提供したい場合に便利です。

トランスコードなしで H.264 動画をアップロードする

H.264 マスタ ファイルから FTP バッチ プロビジョニングを使用して動画を作成したいが、Brightcove でソース ファイルをトランスコードせず、かつ、Brightcove で複数のレンディションを作成したくない場合は、h264-no-processing 属性を使用します。この属性のデフォルト値は false です。アセットに h264-no-processing="true" と設定している場合、同じアセットに encode-to="true"encode-multiple="true"、または h264-preserve-as-rendition="true" を設定することはできません。ソース ファイルは、有効な H.264 動画でなくてはなりません。

<asset h264-no-processing="true" ... > ... </asset>

自分のレンディション ファイルを作成する

Brightcove のトランスコードを使用する代わりに、動画のレンディションを自分で作成し、バッチ プロビジョニングを使用してそれらをアップロードすることができます。動画のレンディションを複数作成するには、動画編集ソフトウェアを使用して、元の動画ファイルを複数の解像度/ビットレートの組み合わせでエンコードします。Brightcove の推奨仕様に基づいて、FLV (VP6) 形式または H.264 (MP4) 形式の動画ファイルを最大 10 本生成します。各レンディションにファイル名を付けて保存します。ファイル名は、動画の内容と解像度/ビットレートがわかる名前にします。

レンディション ファイル内にキー フレームを設定する

視聴者がレンディションを切り替える際(例: 視聴者が全画面表示モードを選択した場合)、Brightcove プレーヤではキー フレームを手がかりにして、切り替え後のレンディションで再生を開始する時点が特定されます。各レンディション ファイルのキー フレーム設定は同じにしてください。同じにしない場合、再生中にレンディションを切り替えたときに切り替え時点がずれる可能性があります。キー フレームの間隔が短いほど、切り替え前レンディションと切り替え後レンディションの間の切り替え時点のずれが小さくなります。たとえば、キー フレームの間隔を 10 秒に設定した場合、切り替え後レンディションの開始時点と切り替え前レンディションの終了時点の差は、最大 20 秒になります。通常は、キー フレーム間隔を 1 秒に設定します。なお、キー フレーム間隔が短いほどファイル サイズが大きくなりますが、全体的な画質は向上します。

バッチ プロビジョニング機能を利用してレンディションをアップロードする

自分のレンディション ファイルを作成した後、FTP バッチ プロビジョニング機能を使用して Media ライブラリにそれらを追加できます。XML マニフェストの asset 要素に各レンディションを記述し、title 要素でそれらすべてのレンディションを指定します。

動画のレンディションを指定する

バッチ プロビジョニング用 XML マニフェストの title 要素内の rendition-refid 子要素で、FLV 形式または H.264 形式のレンディションを複数個指定します。rendition-refid 子要素は、レンディションごとに記述します。次に例を示します。

<title name='MBR Title 1' refid='mbrtitle1' active='TRUE'>
    <short-description>My  short description.</short-description>
    <rendition-refid>mbrasset1</rendition-refid>
    <rendition-refid>mbrasset2</rendition-refid>
    <rendition-refid>mbrasset3</rendition-refid>
  </title>

asset 要素で FLV 形式または H.264 形式のレンディションを指定する

バッチ プロビジョニング用 XML マニフェストの asset 要素で、各レンディションを指定します。次に例を示します。

<asset
  refid='mbrasset1'
  type='VIDEO_FULL'
  hash-code='63a1200ade617219e1bf032377b1cc85'
  size='3774585'
  filename='5000FingersOfDrT_2.flv'
  encoding-rate='160000'
  frame-width='320'
  frame-height='240'/>

多重ビットレート ストリーミング機能を利用できるようにするため、asset 要素に次の属性が追加されています。

属性
encoding-rate bps(ビット/秒)
たとえば、150kbps の場合は 150000 と指定します。
frame-width ピクセル
frame-height ピクセル

encoding-rate 属性の値は、kbps や Mbps ではなく bps で指定してください。encoding-rate、frame-width、または frame-height の値を指定しなかった場合、動画ファイルのメタデータを基にして解析が試みられます。このメタデータが見つからない場合、動画の時間とファイル サイズからビットレートが算出されます。フレーム サイズは、デフォルトで推奨値に設定されます。

レンディションをアップロードするには、Brightcove の FTP サーバーを使用します (FTP バッチ プロビジョニングを使用するを参照)。必ず、レンディション ファイルのアップロード処理が完了してから、XML マニフェスト ファイルをアップロードしてください。レンディション ファイルと XML マニフェストをアップロードしたら、その動画を Media モジュールで使用できるようになります。その際、XML マニフェストで指定されている正しいメタデータが表示されます。

レンディションを既存の動画に追加する

既存の動画に対してレンディションを追加作成するため、バッチ プロビジョニング機能を利用します。たとえば、FOO という名前の動画があり、この動画に対して 480 x 360 ピクセル/512kbps のレンディションが 1 本作成されているとします。レンディションをさらに 2 本作成したいとします。この場合、XML マニフェストで次のように要素を指定します。

<title name='FOO' refid='mbrtitle1' active='TRUE'>
  <short-description>My  short description.</short-description>
  <rendition-refid>foo_210kbps</rendition-refid>
  <rendition-refid>foo_360kbps</rendition-refid>
  <rendition-refid>foo_512kbps</rendition-refid>
</title>

overlay-update 属性を使用して既存の動画を修正する

既存の動画に対してレンディションを追加作成する場合、バッチ プロビジョニング機能によって既存データがどのように上書きされるかを知っておく必要があります。title 要素の overlay-update 属性を使用することを検討してください。この属性を使用すれば、追加するレンディションの情報を指定するだけで済みます。詳細は、overlay-update 属性を使用するを参照してください。

動画に対するレンディション指定を削除する

動画とレンディションとの関連付けを解除するには、その動画に対応する title 要素からそのレンディションの記述を削除します。たとえば、FOO という名前の動画に対するレンディションが 3 つあり、その中の 1 つを削除したいとします。この場合、XML マニフェストで次のように要素を指定します。

<title name='FOO' refid='mbrtitle1' active='TRUE'>
  <short-description>What it is.</short-description>
  <rendition-refid>foo_360kbps</rendition-refid>
  <rendition-refid>foo_512kbps</rendition-refid>
</title>

これにより、この動画に対して作成されていた foo_120kbps レンディションが削除されます。なお、1 本の動画に対してレンディションを少なくとも 1 つ作成する必要があります。

レンディションを削除する

レンディションには、通常のアセットと同じ規則が適用されます。つまり、動画に関連付けられているレンディションは削除できません。レンディションを削除するには、他のアセットの場合と同じ方法を使用します。

<delete-asset refid='mbrasset1aa'/>
タグ
高画質