私はユーザーにライブビデオをストリーミングする必要があるWebサイトで作業しているため、現在のブラウザーベースのビデオストリーミングテクノロジーの残念な状態に頭を悩ませなければなりませんでした。現在最も人気のあるライブストリーミングのソリューションにはすべて互換性の問題があります。 RTMPにはFlashが必要であり、HLSはSafariでのみネイティブにサポートされており、Chrome、 [〜#〜]ダッシュ[〜#〜] はサポートされていません) tnativelyはどこでもサポートされ、 dash.js を使用するには Media Sourceが必要ですまだ広くサポートされていない拡張機能 。
これは私には明らかな質問につながります:ブラウザーのサポートまたはプラグインのいずれかを必要とするHLS、RTMP、DASHなどのプロトコルの代わりに単純な プログレッシブダウンロード を使用することは可能ですか?
プログレッシブダウンロードを使用してライブメディアをストリーミングするという考えは前例のないことではありません。人々はすでにオーディオのためにそれをしています。 liveCaster などのツールを使用すると、事前に記録されたMP3ファイルを必要とせずに、単一のプログレッシブHTTP応答を通じてライブMP3オーディオをストリーミングでき、AmplitudeJSなどのライブラリには が存在しますこの種のライブオーディオストリーミング に関連する機能を追加する方法はありません。
videoでこのテクニックが実際に使用されている例は見たことがありませんが、その理由はわかりません。比較的少ないトレードオフで、面倒で難しいブラウザ側の互換性の問題の層を取り除くようです。 (そして、互換性は、プロが行っている場合でも、ライブストリーミングの巨大な問題です.FirefoxでBBCのiPlayerでライブビデオを見ようとすると、 Flashをインストールするように指示するエラーメッセージが表示されるだけです。)しかし、誰もこのテクニックを使用しておらず、誰も見たことがないアイデアについて言及している私のほかに。
どうして? MP4のようなビデオファイルが生成されるときにプログレッシブダウンロードを介してストリーミングし、ダウンロード時に<video>
要素で再生するだけでは不可能になるという基本的な制限はありません。
あなたの質問は有効で、理論的には私はあなたがcanuseと思いますライブビデオストリーミングのプログレッシブダウンロード。実際、YouTubeなどのオンラインストリーミングビデオの多くはすでにHTTPを使用しています。ストリーミングだけではなく、[〜#〜]ライブ[〜#〜]ストリーミングについて厳密に話していると思います。
ただし、ライブストリーミングの使用例を自分で実装する必要があります。それ以外の場合は、ストリーミングプロトコル(RTMPなど)がそれ自体を行います。これらのプロトコルとアーキテクチャを好むいくつかの理由を次に示します。
ほとんどのライブストリーミングビデオはVBRでエンコードされており、ビデオはクライアントの変化するネットワークの輻輳にすばやく適応する必要があります。したがって、クライアント接続の速度に応じて、ビデオは非常に短い時間で複数の解像度を切り替えることができます。
ウィキペディアによると
ユーザーの帯域幅とCPU容量をリアルタイムで検出し、それに応じてビデオストリームの品質を調整することで機能します
最も重要な点は、ライブストリーミングはliveコンテンツを意味するということです。 HTTPプログレッシブダウンロードとは異なり、いつでもバッファリングできません。ユーザーは全世界向けの最新のフレームを見る必要があり、遅れることはありません。
軽微な問題ですが、プロトコルでは、ユーザーが後方に(そして明らかに前方に)シークすることを明確に許可してはなりません。これは、Video Playerレベルだけでなく、ネットワークレベルでも制御する必要があります。
この点については少し不明確ですが、着信HTTPダウンロードが切断されると、(keep-alive
)。次のポイントがあるため、ライブプロトコルは接続と切断がはるかに高速です->
[〜#〜] http [〜#〜]は本質的に[〜#〜] tcp [〜# 〜]これにより、パケットの配信が保証されます。これを、保証よりも速度が優先される多くのプロトコル(特にライブマルチプレイヤーゲーム)で使用される[〜#〜] udp [〜#〜]と比較してください。 。
詳細はこちら-> https://en.wikipedia.org/wiki/Streaming_media#Protocols
ほとんどのライブストリームサーバーは、現在の時間のコンテンツにのみ応答します。ライブストリームのコンテンツをコピーすることは引き続き可能ですが、スクリーンキャプチャなどに頼らなければなりません。HTTPプログレッシブダウンロードを提供すると、コンテンツをコピーする作業が非常に簡単になります(したがって、非常に多くのYouTubeダウンローダーが存在します)。
これで、HTTPをモデル化して、上記のほとんどを提供できます。
Appleの HTTPライブストリーミング(HLS) は、あなたが達成しようとしているものに最も近いということです。
そして、ここに与えられているように、この分野では活発な研究が行われています-> http://www.streamingmedia.com/Articles/ReadArticle.aspx?ArticleID=65749&PageNum=2
私はより多くの情報を求めており、この答えを更新します。