doitlive.tvのようなライブストリームサイトが非常に低い帯域幅(最低25kbps)のホーム接続でビデオを配信できることに気付くのは驚くべきことです。誰かがそのようなサイトの背後にある技術と、そのような低帯域幅でどのように配信できたかを説明してもらえますか?
4 に答える
私は最近、まさにこの問題に取り組んでいる大手企業数社と緊密に協力してきました。何よりもまず、他の回答で既に述べたように、コンテンツ配信ネットワークを利用して最適な配信を提供します。
CDN は基本的に、単一のリソースの多数のコピーを保持するサーバーの世界規模のクラスターです。したがって、たとえばニューヨーク市からそのリソースを要求すると、ニューヨークに物理的に最も近いバージョンのリソースが取得されます。CDNがどのように機能するかについては、多くの優れた説明があります。
帯域幅に関する質問には、Adaptive Bit Rate Streaming と呼ばれる技術が関係しています。Web にストリーミングするライブ ブロードキャストがあるとします。ストリーミング中は、ファイル全体を小さなパケットに分割するセグメンターと呼ばれるテクノロジがあり、後でそれらをつなぎ合わせることができます。各セグメントは、さまざまな解像度と機能にエンコードされます。したがって、クライアントがファイルを要求すると、CDN は接続の強度を知ることができます。低い場合、アダプティブ ビット レート ストリーミングは、より低い解像度のファイルを提供します。動画をオンラインで見始めると、品質は低くても時間の経過とともに改善されることに気づいたことがありますか? これは、この技術の完璧な例です。接続がさらにバッファリングされて高速になるにつれて、より高品質の「セグメント」が得られます。
アダプティブ ビット レートストリーミングに関する記事を次に示します。
コンテンツ配信システム、およびファイル サイズの縮小。
1つ目は、世界中のデータセンターのサーバーにファイルを保存できるため、ユーザーの転送コストとストレージコストが低くなります. これは、ダウンロード/ストリーミングが高速であることを意味します。
2 つ目は、さまざまな形で提供されます。最も顕著なのは、解像度の低下、ビットレートの調整、および高度なコーデックの使用です。解像度が 640x480 のビデオを 320x240 に縮小すると、保存するのに約 1/4 のスペースが必要になります。同様に、低いビットレートを使用するとビデオのブロックが大きくなりますが、その精度の低下はファイル サイズの低下にもつながります。最後に、h.264 などのより高度なコーデックは、MPEG1 や DivX などの古いまたは単純なコーデックよりも小さく、同じ視覚的品質で同じビデオを圧縮できます。
フラッシュ ストリーミングの場合は、Adobe Flash Media Server、Wowza、オープンソースの Red5 などのメディア サーバーがあります。
これらは、Web 経由で録画またはライブ ストリームをストリーミングするために使用されます。
帯域幅の使用量は、ビデオとサウンドのコーデックによって異なります。
Adobe Flash によるコーデックのサポートについては、こちら を参照してください。また、このウィキペディアの記事を確認することもできます。
それらはあなたにアイデアを与えるかもしれません。
過去に使用されていた単純なアプローチの 1 つは、TCP の代わりに UDP を使用することです。UDP の方がオーバーヘッドが低くなります。すべてのバイトが必要な pdf やプログラムのようなものでは、数個または数個のパケットの価値が失われ、全体が役に立たなくなります。ビデオとオーディオの場合、これは当てはまりません。フレームのドロップやオーディオの欠落を許すか、気付かない傾向があります。UDP には、TCP のように保証された信頼性はありませんが、問題のないストリーミングでは、速度が十分である限り、信頼性よりも速度が重要です。
今日ビデオをストリーミングできる最も重要な理由は、圧縮技術です。新しいテクノロジー (h.264) またはバージョン (mpeg1、mpeg2、...) ごとに、同じビットレートまたは低いビットレートでより良い品質のビデオが要求され、同じ品質またはその両方が要求されます。このアルゴリズムは、エンコーダとデコーダの両方で帯域幅と計算能力を交換します。理想的には、作業の大部分はエンコード側にあるため、デコード アルゴリズムを単純にすることができます。高品質の mpeg2、h.264、またはその他のタイプのビデオをエンコードしようとしたことがある場合、ビデオの再生よりもエンコードにかなりの時間がかかることがよくあります。
この質問に対する他の回答で説明されているコンテンツ配信ネットワーク/システムなどの他のネットワーク トリックを追加します。その一長一短は、ユーザーとコンテンツを含むシステムとの間のホップ数を減らし、コンテンツの全体的な配信帯域幅を多くのサーバーに分散させることです。