HDSストリーミングとは? | HLSとHDSの対比

HTTP動的トリーミング(HDS)は、HTTPを用いたインターネットで行うエンドユーザーへの動画配信方式です。HDSは、HTTPライブストリーミング(HLS)などの他のストリーミングプロトコルほど一般的ではありません。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • HTTP動的ストリーミング(HDS)の仕組みを理解する
  • HDSとHTTP ライブストリーミング(HLS)の対比
  • HDSがHLSよりも普及率が低い理由を説明する

記事のリンクをコピーする

HTTP動的ストリーミング(HDS)とは?

HTTP動的ストリーミング(HDS)とは、Adobe社が開発したアダプティブ・ビットレート・ストリーミング方式です。HDSは、MP4ビデオコンテンツをHTTP接続で配信します。HDSは、オンデマンドのストリーミングまたはライブストリーミングに使用することができます。HTTPで配信されるため、HDSのストリームは、コンテンツ配信ネットワーク(CDN)または他のキャッシングサーバーでキャッシュすることができます。

HDSは、Adobe Flash PlayerおよびAdobe AIR向けに開発されたものです。現在、Adobe Flash Playerは廃止され、Adobe社に代わって外部の企業がAIRをサポートしています。HDSは、Apple社のデバイスには対応していません。

Adobe Flash Playerとは?

Adobe Flash Playerは、動画コンテンツを再生するためのブラウザプラグインです。長年にわたり、ウェブページに動画を埋め込む方法としては、Flashプラグインが最も広く普及していました。しかし、HTML5 video elementがリリースされてからは、Flashは動画を埋め込むための主要な選択肢ではなくなりました。また、Flashには、セキュリティ上の脆弱性が多くあり、危険性を抱えていました。(例えば、Flashの脆弱性の中には、攻撃者が誰かのブラウザで任意のコードを実行することを可能にするものもありました)。

ブラウザやOSは、セキュリティインシデントを避けるために、長年にわたって徐々にFlashのサポートを停止していきました。そしてついに、Adobeは2020年12月31日にFlash Playerのサポートを終了しました。

HDSストリーミングはどのように機能するか

HDSIストリームの作成から配信までのおおまかなプロセスは次のとおりです。

サーバー:HDSで動画ファイルをストリーミング配信する前に、通常のMP4からF4F(フラグメントMP4)ファイル形式に変換する必要があります。F4F形式の動画ファイルは、音声、動画、メタデータを含んでいます。ファイルは「フラグメント化」されているため、これら3つの要素をそれぞれ別個に保存することができます。

HDSの動画は、一般的なエンコード の規格であるH.264でエンコードされています。他の多くのストリーミング技術と同様に、HDSは動画ファイルを複数の品質レベルでエンコードし、動画を数秒単位の長さの短いセグメントに分割します。これにより、アダプティブ・ビットレート・ストリーミングが可能になります(詳細は後述)。

配信:HDSの動画セグメントは、インターネット上でストリームを要求するクライアントデバイスに送られます。CDNは通常、ストリームの配信に加えてキャッシュを行うことで、より高速な提供を実現します。

クライアント:ストリームをリクエストした端末は、メタデータに含まれる動画のマニフェストファイルを参照して、動画のセグメントを順番に組み立てて再生します。また、必要に応じて画質の変更も行います。

マニフェストファイルとは?

マニフェストファイルは、模型飛行機を組み立てるための指示書に例えることができます。指示書には各パーツの位置が示されているので、模型の材料一式を持っている人は自分で飛行機を作ることができます。

同様に、動画のマニフェストファイルは、動画を再生するクライアント端末(ユーザーのノートパソコンやスマートフォンなど)に、動画のセグメントをどのような順番で組み立てるか、音声ファイルをどのように読み込むか、字幕をどこに保存するかなどを指示します。これにより、クライアント機器は動画を正しく構成し、再生することができます。

マニフェストファイルは、動画のメタデータに格納されています。ファイルの「メタデータ」とは、ファイルの付帯情報です。

アダプティブビットレートストリーミングとは?

アダプティブ・ビットレート・ストリーミングとは、動画プレーヤーがネットワークの状況に応じてビデオの品質レベルを調整する技術です。ネットワーク接続状態が低速の場合、プレーヤーは読み込み時間を短縮するために品質の低い動画セグメントを読み込みます。また、ネットワークの接続状態が良好な場合は高解像度のビデオを再生します。これらの調整は動画の再生中に行われます。

アダプティブ・ビットレート・ストリーミングは、ストリーミングされる動画がセグメントに分割され、複数の異なる品質レベルでエンコードされることで実現します。そのため、プレーヤーは動画の各セグメントについて、複数の品質レベルから選択することができます。それぞれのセグメントの後で、プレーヤーは必要に応じて高品質または低品質レベルに切り替えることができます。

HDSはアダプティブ・ビットレート・ストリーミングを採用しています。同様に類似する名称であるHTTPライブストリーミング(HLS)でも採用しています。

HLSとHDSの違いとは?

HLSは、最も広く使用されているストリーミングプロトコルの一つです。HLSは当初、Apple社によって開発された独自のストリーミングプロトコルでしたが、現在ではオープンスタンダードとなっています。Apple社のデバ��スは現在もHLSのみに対応しています。

この2つのストリーミング方式の重要な違いは、HDSはHLSに比べてサポートや採用が普及していないことです。2021年の時点で、Apple社は世界のスマートフォン市場の4分の1近くを占めているため、HDSを使用すると、潜在的な視聴者のかなりの部分が切り捨てられてしまいます。実際、HDSはAdobe Flashとの併用を想定していましたが、Adobe Flashは既に廃止されています。現在、HDSのストリームを再生できる端末を所有している視聴者は比較的少ないと思われます。

Cloudflare Streamを使えば、簡単に動画のアップロードと世界中の視聴者へのストリーミングを行うことができます。 Streamでサポートされている形式の詳細についてはこちらをご覧ください