ビデオストリーミング技術の紹介

経営する企業のブログページで掲載したオリジナル記事 ("ビデオストリーミング技術の紹介") の転載です。 ビデオストリーミングの歴史 インターネットの普及に伴い、様々なシナリオで色々なビジネスに、デジタルビデオがあたりまえのように利用されていますが、デジタルビデオ技術はこれまでに様々な歴史を紡いできています。 2000年代から様々なビデオストリーミング技術が各社で開発され、色々な技術が世の中に溢れていきました。独自のプロトコルで独自のサーバー・クライアント技術を使ったストリーミング技術が開発され、それぞれの技術に精通する必要があり大変な時期でした。これらの技術では、再生するビデオやオーディオの品質はクライアントとサーバー間の通信で制御することもできましたが、ルーター製品やネットワークアドレス変換 (NAT) などのネットワーク環境によって、通信ができないなどの制限もありました。 と同時に、加速度的に普及する HTTP 技術とビデオストリーミングの親和性のために、2000年代後半に、HTTP ベースのアダプティブストリーミングのビデオ配信技術が各社で開発されました。ストリーミングの世界は、アダプティブストリーミングにより、これまでのビデオストリーミング技術がアップデートされました。単純な HTTP ダウンロードでビデオをファイルを再生する際には、たとえビデオをダウンロードしながら再生できたとしても、ビデオのダウンロード速度(ネットワークのバンド幅)とビデオの品質の関係が問題になってきます。 つまり、ビデオの品質(ビデオの1秒間のデータ容量)がダウンロード速度(1秒間にダウンロードできる容量)よりも遅い(大きい)場合は、ビデオの再生が追いつかず、ビデオが途中で止まってしまうということになります。 この問題を解決しようとするのが、アダプティブストリーミングという技術です。 アダプティブストリーミングでは、ビデオを複数のセグメントに分割し、分割したビデオごとにダウンロードして再生することを基本としました。1つのビデオのセグメントは、例えば、2~10秒という長さのビデオで、これらの分割したビデオセグメント群を様々な品質(ビットレート)と解像度でそれぞれ準備することで、ビデオを再生するプレイヤーは、ビデオを配信する Web サーバーとの通信の速度や状態によって、どの品質と解像度のビデオセグメントを再生するか選ぶことができるようになります。 この技術によって、再生するクライアントは、接続しているネットワークのバンド幅に合わせて、再生するビデオの品質をスイッチしながら再生することができ、途中でビデオが止まることがなく再生することができるようになります。 また、HTTP ベースのストリーミングであるため、HTTP キャッシングが可能な CDN (コンテンツ デリバリ ネットワーク) を使って、ストリーミングサーバーの負荷を最小限にしながら、大規模なエンドユーザー向けにビデオストリーミングを配信することができます。 アダプティブストリーミング アダプティブストリーミングとして、当時、3つのストリーミング技術が開発され、それぞれの技術では、ライブ、ビデオオンデマンドのどちらのビデオ配信シナリオをサポートし、専用のクライアントプレイヤーがそれぞれ用意されました。 Adobe HTTP Dynamic Streaming (HDS) Apple HTTP Live Streaming (HLS) Microsoft Smooth Streaming 当時の HTML 技術には、<video> タグや <audio> タグは定義されておらず、リッチメディアと呼ばれるビデオなどのメディアは、ブラウザーのプラグインを使って実装されたプレイヤーで再生されていました。このため、多くのユーザーに向けて配信するためには、コンテンツの配信側は、それぞれのプラグインに対応する3つのストリーミング方式に対応する必要がありました。 モバイルデバイスの普及、マルチデバイス化とともに、ビデオストリーミング技術の標準化やクライアントの標準化が課題となり、様々な企業がビデオストリーミングの技術の発展に寄与してきました。 ビデオストリーミング技術の標準化においては、MPEG-DASH (Dynamic Adaptive Streaming over HTTP) は、2012 年に最初に国際標準として制定されたアダプティブストリーミング技術で、Microsoft や Adobe は、これまで培った技術と経験をベースに、この MPEG-DASH の技術の開発に貢献しました。また、Akamai, Ericsson, Microsoft, Netflix, Qualcomm, Samsung が設立メンバーとして設立した DASH Industry Forumという団体において、標準化された MPEG-DASH 技術に関するマーケットで実際の互換性問題の解決や推奨事項のガイドライン化などを行いながら、技術の普及につとめています。...

2022/10/24 · @shigeyf

Wowza Streaming Engine での MPEG-DASH ストリーミング

はじめに この記事では、Wowza Streaming Engine での MPEG-DASH 方式でのストリーミングに関する 技術的に詳細な設定・カスタマイズの方法について触れます。 MPEG-DASH MPD マニフェストについて MPEG-DASH サーバーは、メディア プレゼンテーション記述 (MPD) マニフェスト ファイルで、 利用可能なメディア セグメント URL のリストをプレーヤーに提供します。 その後、プレイヤーは、中断のない再生を行うために、必要に応じてメディア セグメントを順次要求します。 MPD ファイル内でこのセグメント URL のリストの識別方法を定義する方式をセグメントアドレス方式とは呼び、 以下のセグメントアドレス方式があります。 セグメント リスト方式 利用可能なすべてのセグメントについて、セグメント URL の完全なリストを提供する方式です セグメント テンプレート (時刻ベース) 方式 プレイヤーがセグメント URL リストを作成できるようにするための URL テンプレートを提供する方式です セグメント URL にはセグメントごとの開始時刻が含まれます セグメント テンプレート (セグメント番号ベース) 方式 プレイヤーがセグメント URL リストを作成できるようにするための URL テンプレートを提供する方式です セグメント URL にはセグメントごとのセグメントの番号 (インデックス番号など) が含まます セグメント ベース (BaseURL) 方式 すべてのセグメントが単一の URL (BaseURL) で識別されるセグメント分割を行わない方式で、セグメントがバイトレンジの HTTP リクエストを通じて取得する方式です Wowza Streaming Engine の MPEG-DASH サポートでは、セグメントベース方式以外のセグメントアドレス方式の MPD 形式をサポートしていて、 プレイヤーは以下の URL フォーマット指定で必要なマニフェスト形式を指定できます。...

2020/11/30 · @shigeyf