ffmpeg - RTP 経由の Vorbis コーデックによるオーディオのストリーミング

ffmpeg - RTP 経由の Vorbis コーデックによるオーディオのストリーミング

RTPプロトコルとコーデックを使用してストリーミング オーディオを設定しようとしていますVorbis。最小限の例から始めます - 送信者と受信者が同じマシンでモノラル サンプルを生成します (の 2 つのインスタンスffmpeg、バージョン N-91266-g8c20ea8ee0):

最初に送信側を実行し、SDP をファイルに保存します。

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis -f rtp rtp://127.0.0.1:1234 -sdp_file "g:\sinwave.sdp"

すると受信者は:

ffmpeg -protocol_whitelist "file,udp,rtp" -i "g:\sinwave.sdp" -v debug "g:\1.ogg"

受信したデータは例としてファイルに保存されますが、実際にはパイプやソケットに書き込む予定です。

ffmpegしかし、受信側でエラーが発生します:

[sdp @ 0000000000573580] Bad packed header lengths (30,0,2923,3219)
[vorbis @ 0000000000587940] Extradata missing.
Error while opening decoder for input stream #0:0 : Invalid data found when processing input

ffmpegいずれかの側で見逃したオプションは何ですか?

答え1

パラメータを使用して SDP ファイルを作成すると-sdp_file正しく機能しないようです。以下は送信側の機能するコマンド ラインです。SDP ファイルは、プロセス出力 (>文字 ) のリダイレクトを使用して作成されます。

ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis
-f rtp rtp://127.0.0.1:1234 > "g:\sinwave.sdp"

結果として得られる SDP ファイルのサイズは、行数が多くなり、4503 バイト (4095 バイトではなく) になりますconfiguration=。最終的に、両方ffmpegffplayerその SDP ファイルを使用してストリームを受信できるようになります。

関連情報