
Estoy intentando configurar la transmisión de audio mediante RTP
protocolo y Vorbis
códec. Comenzando con un ejemplo mínimo: muestras mono generadas con el remitente y el receptor en la misma máquina (dos instancias de ffmpeg
, versión N-91266-g8c20ea8ee0):
Ejecutando el remitente primero, guardando SDP en un archivo:
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"
Entonces receptor:
ffmpeg -protocol_whitelist "file,udp,rtp" -i "g:\sinwave.sdp" -v debug "g:\1.ogg"
Los datos recibidos se guardan en un archivo, por ejemplo, en realidad está previsto escribirlos en una tubería o un enchufe)
Pero recibo ffmpeg
errores en el lado del receptor:
[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
¿Qué opciones me he perdido ffmpeg
en alguno de los bandos?
Respuesta1
Parece que la creación del archivo SDP usando -sdp_file
el parámetro no funciona correctamente, aquí está la línea de comando funcional para el remitente, donde el archivo SDP se creó con la salida del proceso de redireccionamiento ( >
carácter):
ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis
-f rtp rtp://127.0.0.1:1234 > "g:\sinwave.sdp"
El archivo SDP resultante tiene un tamaño de 4503 bytes (en lugar de 4095 bytes) con una configuration=
línea más grande; finalmente ambos ffmpeg
y ffplayer
pueden recibir transmisión usando ese archivo SDP.