ライブストリーミングは技術レベルでどのように機能しますか?

ビデオキャプチャ

ライブストリーミングは、生のビデオデータから始まります。カメラによってキャプチャされた視覚情報です。カメラが接続されているコンピューティングデバイス内では、この視覚情報はデジタルデータ、つまり最も深いレベルの1と0として表されます。

ライブ配信アプリ

セグメンテーション

ビデオには多くのデジタル情報が含まれているため、短いPDFや画像をダウンロードするよりもビデオファイルをダウンロードする方が時間がかかります。すべてのビデオデータを一度にインターネット経由で送信することは現実的ではないため、ストリーミングビデオは数秒の長さの小さなセグメントに分割されます。

圧縮とエンコード

次に、セグメント化されたビデオデータが圧縮およびエンコードされます。データは、冗長な視覚情報を削除することによって圧縮されます。たとえば、ビデオの最初のフレームに灰色の背景に対して話している人物が表示されている場合、同じ背景を持つ後続のフレームに対して灰色の背景をレンダリングする必要はありません。

ビデオ圧縮は、リビングルームに新しい家具を追加するようなものと考えてください。新しい椅子やサイドテーブルを追加するたびに、まったく新しい家具を購入する必要はありません。代わりに、部屋のレイアウトをほぼ同じに保ち、一度に1つだけ変更して、必要に応じて大規模な再配置を行うこともできます。同様に、ビデオストリームのすべてのフレームを合計でレンダリングする必要はありません。人の口の動きなど、フレームごとに変化する部分だけをレンダリングする必要があります。

エンコード」とは、データを新しい形式に変換するプロセスを指します。ライブストリーミングビデオデータは、さまざまなデバイスが認識する解釈可能なデジタル形式にエンコードされます。一般的なビデオエンコーディング規格は次のとおりです。

ライブストリーミングテクノロジーの詳細については、https://bap-software.net/knowledge/live-stream-app/

CDNの配布とキャッシュ

f:id:melissabwalls21dayrep:20200813113126j:plain

ライブストリームがセグメント化、圧縮、およびエンコードされたら(すべて数秒しかかかりません)、それを視聴したい数十人または数百万人の視聴者が利用できるようにする必要があります。さまざまな場所にある複数の視聴者にストリームを配信しながら、レイテンシを最小限に抑えて高品質を維持するには、CDNが配信する必要があります。

CDNは、配信元サーバーに代わってコンテンツをキャッシュおよび配信するサーバーの分散ネットワークです。 CDNを使用するとパフォーマンスが向上します。これは、ユーザーの要求がオリジンサーバーに到達する必要がなくなるため、代わりに近くのCDNサーバーで処理できるためです。この方法でリクエストを処理してコンテンツを配信すると、配信元サーバーの作業負荷も軽減されます。最後に、CDNを使用すると、サーバーが単一の地理的領域にクラスター化されるのではなく、世界中に配置されるため、世界中のユーザーにコンテンツを効率的に提供できます。

CDNは、ライブストリームの各セグメントをキャッシュ(一時的に保存)するため、ほとんどの視聴者は、オリジンサーバーからではなく、CDNキャッシュからライブストリームを取得します。これにより、キャッシュされたデータが数秒遅れていても、実際にはライブストリームがリアルタイムに近づきます。これは、オリジンサーバーとの往復時間(RTT)が短縮されるためです。

デコードとビデオ再生

CDNは、ライブストリームを、ストリームを視聴しているすべてのユーザーに送信します。各ユーザーのデバイスは、セグメント化されたビデオデータを受信、デコード、および圧縮解除します。最後に、ユーザーのデバイス上のメディアプレーヤー(専用アプリまたはブラウザー内のビデオプレーヤー)がデータを視覚的な情報として解釈し、ビデオが再生されます。