6

私は、基本的にサーバーといくつかのクライアントで構成されるリアルタイムビデオストリーミングシステムを開発しています。

ここでは、サーバーとクライアントの間でパケットがどのように転送されるかは無視して、サーバーが UDP パケットを介して MPEGTS ストリームを送信する方法だけに注目しましょう。

ストリームは MPEGTS 形式でエンコードされます。

私がやろうとしているのは、いくつかのパケットを読み取り (主な質問は「いくつですか?」)、それらを UDP パケットにカプセル化することです。宛先 (クライアント) はこれらの UDP パケットを読み取り、UDP パケットを読み取ることによって MPEGTS ネットワーク ストリームを再生できる VLC に転送します。

ビデオ パケットのみを送信すると、すべて正常に動作しますが、代わりに、一部のビデオ パケットと一部のオーディオ パケットの両方を同じ UDP パケットにカプセル化しようとすると、VLC はストリームをデコードして再生できません。各 UDP パケットに 7 つの TS パケットを含める必要があることをどこかで読みましたが、残念ながら、このルールに準拠していても、VLC はストリームを正しくデコードしません。

これが私のプログラムのサンプルコードです: http://pastebin.com/evMi6FkY

MPEGTS パケットを UDP パケットにカプセル化するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

0

https://github.com/KwikFlixTV/kwik-udp-sendを試すことができ ます。ts または FIFO ファイルを使用し、一定のビットレート ストリームを送信します。

重要な機能のリスト:

  • ts ファイルを ts udp ストリームとして送信する

  • 送信するファイルがない場合は、ヌル パケットを送信します。

  • ストリームの安定性を提供するために、リアルタイムのプロセス/スレッドの優先順位で動作します

  • FIFOファイルで動作

  • ストリームの安定性を提供するための蓄積部分のあるキャッシュ バッファへのファイルの読み込み

于 2015-12-24T06:56:38.770 に答える