ffmpeg: transmisión de audio con códec Vorbis a través de RTP

ffmpeg: transmisión de audio con códec Vorbis a través de RTP

Estoy intentando configurar la transmisión de audio mediante RTPprotocolo y Vorbiscó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 ffmpegerrores 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 ffmpegen alguno de los bandos?

Respuesta1

Parece que la creación del archivo SDP usando -sdp_fileel 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 ffmpegy ffplayerpueden recibir transmisión usando ese archivo SDP.

información relacionada