0

RTSP ビデオ ソースに接続し、UDP を使用してビデオ データを別の場所にリダイレクトするプログラムを作成しようとしています。また、後でビデオ ストリームを再生できるように、RTSP パケットも保存しています。現在、私のプログラムは RTSP ビデオ ストリームに接続し、リダイレクトして保存できますが、リダイレクトされたビデオを見ようとすると、VLC を使用しても何も得られません。

現在、プログラムは、開いている UDP ソケットで受信した RTSP ビデオ パケットからデータグラムを取り除き、boost asio ライブラリを使用してこのコードを使用して再送信します。

newVideoSocket->send_to(&dg.data[0], dg.data.size() ,Endpoint);

Wireshark を使用してトラフィックを見ると、実際にはデータが新しいアドレスに送信されており、UDP パケットとして認識されていることがわかりますが、VLC を使用してビデオを表示しようとしても何も起こりません。ビデオ ストリームは Mpeg4 で、ビデオは H.264 としてエンコードされており、VLC で再生できます。

マルチキャスト アドレスとユニキャスト アドレスの両方で、UDP および RTP としてリダイレクトされたストリームに接続しようとしましたが、成功しませんでした。再送信する前に、データグラムから何かを追加または削除する必要がありますか? それとも、VLCで表示しようとしている方法に問題がありますか? 助けてくれてありがとう。

4

1 に答える 1

0

生の UDP ストリームを再生するには、VLC はストリームに関する情報を必要とします (この情報は、DESCRIBE および SETUP メッセージで RTSP を介して転送されます)。ポート番号、ビデオ タイプなどを指定して sdp ファイルを作成し (serer からの DESCRIBE 応答を読み取る必要があります)、vlc で開きます。

なんとか動作させましたが、このようにVLCを使用すると、同期とビデオ出力で問題が発生しました(ビデオが壊れていました)。

于 2013-09-30T09:30:42.877 に答える