私は、基本的にサーバーといくつかのクライアントで構成されるリアルタイムビデオストリーミングシステムを開発しています。
ここでは、サーバーとクライアントの間でパケットがどのように転送されるかは無視して、サーバーが UDP パケットを介して MPEGTS ストリームを送信する方法だけに注目しましょう。
ストリームは MPEGTS 形式でエンコードされます。
私がやろうとしているのは、いくつかのパケットを読み取り (主な質問は「いくつですか?」)、それらを UDP パケットにカプセル化することです。宛先 (クライアント) はこれらの UDP パケットを読み取り、UDP パケットを読み取ることによって MPEGTS ネットワーク ストリームを再生できる VLC に転送します。
ビデオ パケットのみを送信すると、すべて正常に動作しますが、代わりに、一部のビデオ パケットと一部のオーディオ パケットの両方を同じ UDP パケットにカプセル化しようとすると、VLC はストリームをデコードして再生できません。各 UDP パケットに 7 つの TS パケットを含める必要があることをどこかで読みましたが、残念ながら、このルールに準拠していても、VLC はストリームを正しくデコードしません。
これが私のプログラムのサンプルコードです: http://pastebin.com/evMi6FkY
MPEGTS パケットを UDP パケットにカプセル化するにはどうすればよいですか?
ありがとう!