UDPトランスポートに適したユースケースとTCPトランスポートに適したユースケースがあります。
ユースケースでは、ビデオのエンコーディング設定も指定します。サッカーの試合を放送するときの焦点は品質にあり、テレビ会議の場合は焦点が待ち時間にあります。
マルチキャストを使用して顧客にビデオを配信する場合、UDPが使用されます。
マルチキャストの要件は、ブロードキャストサーバーと顧客間の高価なネットワークハードウェアです。実際には、これは、会社がネットワークインフラストラクチャを所有している場合に、ライブビデオストリーミングにUDPとマルチキャストを使用できることを意味します。その場合でも、ビデオパケットにマークを付けて優先順位を付けるサービス品質も実装されているため、パケット損失は発生しません。
ネットワークハードウェアが顧客へのパケットの配布を処理するため、マルチキャストはブロードキャストソフトウェアを簡素化します。顧客はマルチキャストチャネルをサブスクライブし、ネットワークを再構成してパケットを新しいサブスクライバーにルーティングします。デフォルトでは、すべてのチャネルをすべての顧客が利用でき、最適にルーティングできます。
このワークフローでは、承認プロセスが困難になります。ネットワークハードウェアは、サブスクライブしたユーザーを他のユーザーと区別しません。承認の解決策は、ビデオコンテンツを暗号化し、サブスクリプションが有効なときにプレーヤーソフトウェアで復号化を有効にすることです。
ユニキャスト(TCP)ワークフローにより、サーバーはクライアントの資格情報を確認し、有効なサブスクリプションのみを許可できます。特定の数の同時接続のみを許可することもできます。
インターネット経由でマルチキャストが有効になっていません。
インターネット経由でビデオを配信するには、TCPを使用する必要があります。UDPを使用すると、開発者はパケットの再送信を再実装することになります。Bittorrent p2pライブプロトコル。
「TCPを使用する場合、OSはクライアントごとに未確認のセグメントをバッファリングする必要があります。これは、特にライブイベントの場合は望ましくありません。」
このバッファは何らかの形で存在している必要があります。プレーヤー側のジッタバッファについても同様です。これは「ソケットバッファー」と呼ばれ、サーバーソフトウェアはこのバッファーがいっぱいになったことを認識し、ライブストリームの適切なビデオフレームを破棄できます。サーバーソフトウェアは適切なフレームドロップロジックを実装できるため、ユニキャスト/ TCP方式を使用することをお勧めします。UDPの場合のランダムな欠落パケットは、ユーザーエクスペリエンスを低下させるだけです。このビデオのように:http : //tinypic.com/r/2qn89xz/9
「IPマルチキャストは、大勢の視聴者のビデオ帯域幅要件を大幅に削減します」
これはプライベートネットワークにも当てはまります。マルチキャストはインターネット経由で有効になっていません。
「TCPが損失するパケットが多すぎると接続が停止することに注意してください。UDPはネットワークトランスポート層のドロップを気にしないため、UDPはこのアプリケーションをより詳細に制御できます。」
UDPは、フレーム全体またはフレームのグループのドロップについても考慮しないため、ユーザーエクスペリエンスをこれ以上制御できません。
「通常、ビデオストリームは多少フォールトトレラントです」
エンコードされたビデオはフォールトトレラントではありません。信頼できないトランスポートを介して送信されると、前方エラー訂正がビデオコンテナに追加されます。良い例は、いくつかのオーディオ、ビデオ、EPGなどのストリームを運ぶ衛星ビデオ放送で使用されるMPEG-TSコンテナです。これは、衛星リンクが二重通信ではないために必要です。つまり、受信者は失われたパケットの再送信を要求できません。
二重通信を利用できる場合は、常にパケット損失のあるクライアントにのみデータを再送信し、すべてのクライアントに送信されるストリームに転送エラー修正のオーバーヘッドを含めることをお勧めします。
いずれの場合も、失われたパケットは受け入れられません。帯域幅が妨げられている例外的なケースでは、フレームのドロップは問題ありません。
パケットが欠落していると、次のようなアーティファクトが発生します。
一部のデコーダは、重要な場所でストリームが欠落しているストリームを中断できます。