Dynamic Streamingを利用し、よりスムーズな動画再生を行うには

プロフェッショナルサービス担当の酒井です。

ユーザーが快適に動画を閲覧できるかどうかということの重要な指標として、ユーザーのインターネットの接続速度があげられます。光ファイバーで100Mbps超の快適な速度で接続できることもあれば、外のモバイルインターネットでは700kbpsということもあります。
そのような多様なユーザー環境をカバーするため、ブライトコーブではダイナミック・デリバリという機能を提供しています。これは、1つの動画ファイルについて異なるビットレートのファイル("レンディション"と呼びます)を複数用意しておき、ユーザーの接続速度に応じて、適切なビットレートのレンディションを選択し配信する、という機能です。ダイナミック・デリバリを使用することにより、閲覧ユーザーのネット環境に合わせたビットレートの動画ファイルの配信を自動的に行うことができます。
このダイナミック・デリバリに組み合わせて使用できる機能として、Flash Player 10のDynamic Streaming(ダイナミックストリーミング)という機能があります。

ダイナミック・デリバリ+Dynamic Streamingで可能になることを要約すると以下の2点になります。

  • レンディションの切り替えの際、バッファリングが発生しなくなる
  • 帯域や閲覧ユーザーの描画フレームレート(CPU負荷状況)に応じて、随時レンディションを切り替え、常に最良の映像を配信する(バッファリングが発生しないため、ユーザーに意識されることなくレンディションの切り替えが行えるようになるため)

以下詳しいご説明になります。

Dynamic Streamingとは、動画の再生帯域をスムーズに変更するためにFlash Player 10に搭載された技術です。
たとえば、長尺で最高3MbpsのHD動画を流す際、最初は300kbpsのレンディションを使って、バッファリングをなるべく少なくして再生を開始し、後で3Mbpsに切り替えるといった方法を取る場合、従来のFlash Playerでは、レンディション切り替えの際にバッファリングが発生していました。
Dynamic Streamingを使うことで、レンディション切り替えが行われる際も、つなぎ目を感じさせない切り替えが可能となります。これにより、動画の再生中に接続が安定したらよりビットレートの高いレンディションへ、逆に不安定になったらビットレートの低いレンディションへ自動的に切り替えるというダイナミック・デリバリの動作を、Dynamic Streamingを組み合わせることでスムーズに、かつ、ユーザーに意識させることなく行えるようになります。
(ダイナミック・デリバリでは、レンディションが変わる際に若干バッファリングが発生していましたが、Dynamic Streamingを併用することで、バッファリング時間が無くなります)

ブライトコーブのプレイヤーでDynamic Streamingを使用する際には、公開コード中に
<param name="dynamicStreaming" value="true" />
という一行を加えるだけで、Dynamic Streamingが有効になります(もちろん、Dynamic Streamingを有効に作動させるには、動画ファイルでダイナミック・デリバリが有効になっている必要があります)。
下のプレイヤーでフルスクリーンを押した場合なども、バッファリングが発生していないことが確かめられるかと思います。

これに対し、下のDynamic Streamingが無効なプレイヤーでは、フルスクリーン時などに、一瞬ではありますが、バッファリングが発生します。

このように、Flash PlayerやFlash Media Serverの新機能にもいち早く対応できるのが、PaaSでサービスを提供しているブライトコーブの良い点ですね。