シンプルなレンディションのためのアプローチ

シンプルなレンディションのためのアプローチ

マルチデバイス環境では、先行きが定まっていない動画サポートの方向性を決めることは難しく、特に高品質、低コストを目指している場合はなおさらのことです。

レンディションと現代
基本的に、オンライン動画は一つのソース ファイルを、Webで再生するための一つの出力ファイルにトランスコーディングすることによって作成します。これらの動画ファイルの各々をレンディションと呼び、一連のレンディションによって、エンドユーザへの動画配信方法が決まります。

2005 年に YouTube が登場したとき、ベーシックなプレーヤで単一の出力レンディションを提供していました。そして 2013 年の今、HTML5/Flash プレーヤ、広告挿入、推奨エンジン、ペイウォール、そして各種ビットレートやフォーマットでの複数、時には膨大な数のレンディションによって、オンライン動画環境が定義されています。

なんだか混乱しているように聞こえるかもしれませんし、実際混乱することもありますが、動画配信、コスト削減、視聴者のエクスペリエンス向上のためのアプローチをシンプルにするための方法がいくつかあります。それらすべてはレンディションから始まるのです。

はしごを上れ
デバイスの世界をひとつの壁であると想像してみてください。壁の一番下には、3G 接続機能と小さなスクリーンが搭載された、最も低機能で、最も使いにくいフィーチャフォンがあります。壁の一番上には、最新の HDTV と超高速インターネット接続機能があります。この中間にあるのが、プロセッサ、GPU、ネットワーク接続機能、スクリーン サイズの異なる各種デバイスです。

壁の高さは平均的なコンテンツの長さによって決定し、長ければ長いほど、壁が高くなります。レンディションははしごのようなもので、壁のあらゆる場所からスムーズに上下に移動できるようにしてくれます。壁が高ければ、上下移動がスムーズにできるように、はしごの段がたくさん必要になります。壁が低ければ、数段あれば満足のいくエクスペリエンスを提供することができます。

ステップ 1: 最初のはしご
最初に基本フォーマットを決定します。基本フォーマットは各種デバイスで再生できなければなりません。すべてのデバイスで最適な選択肢にはならないかもしれませんが、必ず再生できなければなりません。オンライン動画の目的は、皆にそれを見てもらうことにあります。

Zencoder は Web、モバイル、コネクティッド TV 用の主要な出力フォーマットを多数サポートしています。これらのフォーマットはいずれも重要ですが、ほとんどの場合、一番多くのデバイスでユビキタスにサポートされている MP4 が最適です。したがって、最初のはしごは MP4 フォーマットをベースにします。

ステップ 2: ビットレート - はしごの段を作成する
最初に作成するはしごが決まったので、次にはしごの段を作成します。

まず壁を見て、サービスの開始地点と終了地点を決定してください。たとえば、ユーザが作成したコンテンツ サイトの場合、平均的な動画の長さは 1 分です。各動画の最大サイズは小さいので、バッファリングやストリームの中断を気にする必要はありません。プレーヤはストリーム全体を数秒でダウンロードできるので、必要なレンディション数は、たとえば HD と SD を 1 つずつというように、少数で済むことになります。

一方、平均的な動画の長さが 120 分という映画サービスについて考えてみましょう。ファイル サイズは大きく、ユーザのデバイスではストリーム全体をダウンロードできません。さらに、ユーザは通常、長編映画の品質に高い期待を抱いています。ネットワーク接続環境が充実したユーザが高品質な動画を視聴できるように、いくつかのレンディションを作成する必要があります。接続環境が悪かったとして、それでも動画は見てほしいですし、帯域幅が拡大され次第エクスペリエンスが改善できるようにしたいので、中間レンディションを提供する(つまりはしごの上段に移動する)必要があります。

コンテンツが長く、品質が高いほど、一貫性のある視聴エクスペリエンス提供に必要なレンディション数が多くなります。

ステップ 3: 段の定義
スムーズで使いやすいはしごを作成しましたが、もう少し改善の余地があります。ビットレートと解像度以外に、H.264 にはプロファイルとレベルという、一部のデバイス用のレンディション機能が 2 つあります。

プロファイルは、特定のレンディションのデコードに必要なエンコーディング アルゴリズムの難易度を定義するもので、難易度が低から高まであります。最も重要な 3 つのプロファイルは、ベースラインプロファイル、メインプロファイル、およびハイプロファイルです。レベルは特定のレンディションの上限ピクセル数やビットレートを定義するものです。最も重要な 3 つのレベルは、3.0(SD / レガシー モバイル)、3.1(720p / モバイル)、および4.1(1080p / 最新デバイス)です。

一番下の段で可能な限り広範なサポートを提供することで、デバイスに関係なく再生可能な動画を届けることができます。したがって、ベースライン 3.0、またはメイン 3.1 を選択し、ある程度の解像度、すなわちモバイルまたは 640 x 360 のいずれかを選択する必要があります。はしごを上に進み、一番上に達するまでこの値を徐々に上げていくと、最終的には 1080p のハイプロファイル 4.1 動画に到達し、動画品質を最大化することができるのです。

ステップ 4: フォーマット - はしごの複製
MP4 ファイルを作成し、安定した基本フォーマットができあがりました。これで壁にかけるはしごが 1 本完成し、顧客は各種デバイスで動画を視聴することができます。MP4 は強力なベースラインフォーマットですが、他のフォーマットを使用することでユーザ エクスぺリエンスが改善できます。たとえば、HLS によってユーザのデバイスははしごの上下移動を自動的に、シームレスに行えるようになります。

すでに MP4 は作成済みですし、MP4 は標準フォーマットなので、他のフォーマットに簡単にパッケージしなおすことができます。これは非常に簡単な作業なので、Zencoder ではこの種の複製、すなわちトランスマックス(多重化)に対して、通常のジョブの 25% しか課金していません。「source」、「copy_video」、および「copy_audio」を使用して、一連の MP4 エンコーディングと併せて、ほぼ瞬時に行うことができます。

「source」コマンドは Zencoder に対して、特定の出力「ラベル」で作成されたファイルを再利用するように指示します。したがって、"label:":= "MP4_250," と指定してファイルを作成した場合、"source:" "MP4_250" を使用して、Zencoder にこのレンディションを再利用するように指示するだけでよいのです。その後、"Copy_video" と "copy audio" を使用して、構成しているオーディオおよび動画トラックを抽出し、HLS フォーマット ファイルにパッケージしなおします。

同様な手順でスムーズなストリーミングも提供することができます。ほぼ瞬時に、あまりコストをかけずに、2 つの新しいはしごを作成することができました。これで、ほとんどの人が高品質な動画を視聴できます。

ステップ5: 磨きをかける
動画サービスで最も重要な作業の 1 つは、レンディションを常に改善・改良し、磨きをかけていくことにあります。

日々加速するオンライン動画環境では、今は素晴らしいと感じることも、来年には物足りなく感じる可能性があります。数年後には、まったく過去の遺物になってしまうかもしれません。Zencoder は動画エンコーディング技術の最先端をリードすることで、この種の問題を解決してくれます。ブライトコーブは常にツールの更新や新規作成を行って、ますます高品質で高速、そして安定したエンコーディング プラットフォームを提供できるようにしています。

次のステップで必要なのは、各自で継続的に新しいバリエーションをテストして、自社ユーザに最適なレンディション セットを探し出すことです。これによって、安定した、最適なデリバリ インフラストラクチャと、ユーザーとの良好な関係が確立できます。