
RTP
Ich versuche, Streaming-Audio mithilfe von Protokoll und Codec einzurichten Vorbis
. Beginnen wir mit einem Minimalbeispiel – generierte Mono-Samples mit Sender und Empfänger auf derselben Maschine (zwei Instanzen von ffmpeg
, Version N-91266-g8c20ea8ee0):
Zuerst Sender 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 nur als Beispiel in einer Datei gespeichert. Eigentlich ist geplant, sie in eine Pipe oder einen Socket zu schreiben.)
Aber ich erhalte ffmpeg
Fehlermeldungen auf der Empfängerseite:
[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 ffmpeg
auf einer der Seiten übersehen?
Antwort1
Das Erstellen der SDP-Datei mit -sdp_file
Parametern funktioniert anscheinend nicht richtig. Hier ist die funktionierende Befehlszeile für den Absender, in der die SDP-Datei mit der Umleitung der Prozessausgabe ( >
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; schließlich können beide ffmpeg
mithilfe ffplayer
dieser SDP-Datei einen Stream empfangen.