ffmpeg - Audio-Streaming mit Vorbis-Codec über RTP

502
apdevelop

Ich versuche, Streaming-Audio mit RTPProtokoll und VorbisCodec einzurichten . Beginnend mit einem minimalen Beispiel - erzeugte Mono-Samples mit Sender und Empfänger auf derselben Maschine (zwei Instanzen ffmpeg, Version N-91266-g8c20ea8ee0):

Sender zuerst ausführen, SDP in Datei speichern:

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"

Dann empfänger:

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

Die empfangenen Daten werden beispielsweise nur in einer Datei gespeichert. Eigentlich ist es geplant, sie in eine Pipe oder einen Socket zu schreiben.

Ich erhalte jedoch ffmpegFehler beim Empfänger:

[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 

Welche Optionen habe ich ffmpegauf einer der Seiten vermisst ?

0

1 Antwort auf die Frage

0
apdevelop

Sieht aus, als würden Sie die SDP-Datei mit einem -sdp_fileParameter erstellen, der nicht ordnungsgemäß funktioniert. Hier ist die Arbeitsbefehlszeile für den Sender, in der die SDP-Datei mit Umleitungsprozessausgabe ( >Zeichen) erstellt wurde:

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

Die resultierende SDP-Datei hat eine Größe von 4503 Byte (anstelle von 4095 Byte) mit größerer configuration=Zeile. endlich beide ffmpegund ffplayerkönnen Stream mit dieser SDP-Datei empfangen.