HLS 動画配信
概要
HLS プロトコルは、動画を小さなファイル ダウンロードの連続に分割し、各ダウンロードが動画の短いチャンクを HTTP 経由で読み込みます。ストリーム再生中、クライアントは複数のデータレートでエンコードされた同じ素材の別ストリームから選択でき、利用可能なデータレートに合わせてストリーミング再生が適応します。ストリーミング セッション開始時には、利用可能な各サブストリームのメタデータを含む拡張プレイリストをダウンロードします。
イントロダクション
HLS は iOS と Android でネイティブ サポートされているため、モバイル デバイスでの動画ストリーミングにおける事実上の標準となりました。HLS を利用した動画配信には以下の利点があります:
- (クライアント主導の)アダプティブビットレート選択をサポート
- 標準的な HTTP ポートで配信
- シンプルでテキストベースのマニフェスト形式
- 独自のストリーミングサーバーが不要
HLS の作成
Video Cloud は、H.264(MP4)や H.263(FLV)と並び、HLS を動画エンコードオプションとしてサポートしています。トランスコードプロファイルは、Dynamic Ingest API や Upload モジュールを使用して動画をアップロードする際に作成されるレンディションの数と種類を決定します。使用するトランスコードプロファイルによっては、HLS レンディションが自動的に作成される場合があります。トランスコードプロファイルと各プロファイルで作成されるレンディションの種類については、標準トランスコードプロファイル を参照してください。
Dynamic Ingest はカスタム トランスコードプロファイルをサポートしていますが、現時点ではユーザーが独自のカスタム プロファイルを作成することはできません。カスタム プロファイルが必要な場合は、Brightcove のソリューションエンジニアまたは営業までお問い合わせください。
HLS レンディションを含むトランスコードプロファイルを選択または作成した場合、Dynamic Ingest API または Upload モジュールを使用して動画をアップロードするたびに、その動画には HLS レンディションと、プロファイルで指定されたその他のマルチビットレート レンディションが含まれるようになります。
HLS の再生
Brightcove プレーヤーには、デフォルトで HLS 再生エンジンが組み込まれています。プレーヤーに提供された動画に HLS レンディションが含まれている場合、プレーヤーは MP4 よりも優先して HLS を再生します。これは、デフォルトの再生順が HLS → HTML5 → Flash となっているためです。ブラウザが HLS をネイティブサポートしている場合(例:デスクトップ版 Safari や iOS)にはその機能を利用し、サポートしていないが Flash がインストールされている場合には Flash フォールバックを使用します。この動作は、プレーヤーのテック順を変更することでカスタマイズできます。
Video Cloud では HLS 暗号化を提供しており、iOS デバイスで再生するために暗号化された動画を HTTP 経由で送信できます。詳細は HLS 暗号化による動画保護 を参照してください。
Brightcove プレーヤーは、利用可能な帯域幅とエンコーディングに応じて可能な限り高品質の視聴体験を提供しようとします。これは常に最高ビットレートのレンディションを使用するという意味ではありません。例えば、プレーヤーサイズが 300px × 150px の場合、4K ストリームをダウンロードするのは帯域の無駄になります。デフォルトでは、プレーヤーは「最近検出されたセグメント帯域幅より小さい最高ビットレート」のバリアントを読み込もうとします。ただし、プレーヤーサイズより大きいバリアントが複数ある場合は、その中で 1 つ上のサイズのバリアントにのみ切り替えます。