4

私は、Web でのビデオ ストリーミングと再生の現状について、多くのことを調査しました。私が要約したことと、大部分のデバイスとブラウザーでアダプティブ ストリーミングをサポートするために従うべきだと思う戦略を投稿しています。私が取り組んでいる戦略に大きな抜け穴/改善点がある場合は、コミュニティからのフィードバックが欲しかった.

まとめ

  • 今日のほとんどのブラウザで html の<video>要素で動画を再生できるようにするには、少なくとも 3 つの形式の WEBM、OGG、MP4 で動画をエンコードする必要があります。
  • ビデオ オン デマンド サービスにアダプティブ ストリーミングを導入するには、MPEG-DASH、Apple の HLS、Microsoft のスムーズ ストリーミング、および Adob​​e の HDS を利用できます。
  • MPEG-DASH は、HDS、HLS、Smooth Streaming に似たオープン スタンダードであり、任意のブラウザや OS でオーディオ/ビデオ コンテンツを提供するための共通プラットフォームを提供するために発明されたため、最初は MPEG-DASH を使用することを好みました。
  • しかし、現在のところ、iOS で Safari を実行し、Mac で Safari を実行している Apple デバイスは、MPEG-DASH 標準を完全にはサポートしていません。これは、Apple が MPEG-DASH のベースである html5 の Media Source Extensions API をまだサポートしていないためです。
  • だから私はMPEG-DASH(Apple以外のデバイス用)+ HLS(Appleデバイス用)の実装を行っています
  • これは、クライアントに提供されるサーバー側で.mpd ( mpeg-dash で使用) と.m3u8 (HLS で使用) ファイルの両方を生成する必要があることを意味します。エンコードの目的でサーバー側で Node.js を使用しています。

mpeg-dashを使用するときに基本的に行うことは、ソースファイルと、クライアントに送信されるストリームに関する説明/ルールを含む構成ファイルから、さまざまなビットレートでさまざまなメディアファイルを作成することです。帯域幅によって異なります。

HLS にも同じロジックが適用されますが、mpeg-dash とは異なる拡張子を持つ構成ファイルが作成される点が異なります。

ビデオで 1020*720、800*600、400*300 などの 3 つの異なる解像度で 3 ビット レートをサポートする場合、サポートする 3 つのフォーマット (つまり、WEBM、 OGG、MP4)

したがって、クライアントによってアップロードされた 1 つのビデオについて、Apple 以外のデバイスと Apple デバイスをサポートするために、.mpd および .m3u8 ファイルを生成するとともに、合計で 3*3 = 9 つのビデオを生成する必要があります。

これは良い習慣だと思いますか?または、クロス ブラウザー アダプティブ ストリーミング ソリューションを使用するために欠けている大きなものはありますか?

ヒント/推奨事項/提案は大歓迎です。

ありがとう !

4

2 に答える 2

1

あなたのアプローチは儀式のように聞こえます。Mac 上の Safari はメディア ソース拡張機能をサポートするようになったため、DASH 用にもう 1 つ追加されました。ただし、iOS には HLS が必要です。私はiOS9がそれを含むことを望んでいましたが、今のところ運が悪い. VideoToolkit を使用して iOS アプリで DASH を実行することは理論的には可能ですが、Apple がそのようなことをアプリ ストアに許可するかどうかはまだわかりません。個人的には、webm は忘れて、h264/aac のみをサポートします。Silverlight と HDS は完全に無視する必要があります。Adobe と Microsoft の両方が DASH に移行しています。javascript で記述されたコンバーターを介して MSE で HLS を再生することも可能です。もう少し複雑ですが、それを実行できるプレーヤーがいくつかあります。

于 2015-07-11T15:57:24.367 に答える