
Estou tentando configurar o streaming de áudio usando RTP
protocolo e Vorbis
codec. Começando com amostras mono geradas por exemplo mínimo com remetente e destinatário na mesma máquina (duas instâncias de ffmpeg
, versão N-91266-g8c20ea8ee0):
Executando o remetente primeiro, salvando o SDP no arquivo:
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"
Então receptor:
ffmpeg -protocol_whitelist "file,udp,rtp" -i "g:\sinwave.sdp" -v debug "g:\1.ogg"
Os dados recebidos são salvos em um arquivo apenas por exemplo, na verdade, está planejado gravá-los em um tubo ou soquete)
Mas estou recebendo ffmpeg
erros no lado do 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
Quais opções eu perdi ffmpeg
em algum dos lados?
Responder1
Parece que a criação do arquivo SDP usando o -sdp_file
parâmetro não está funcionando corretamente, aqui está a linha de comando funcional para o remetente, onde o arquivo SDP criado com o redirecionamento da saída do processo ( >
caractere):
ffmpeg -re -f lavfi -i aevalsrc="sin(400*2*PI*t)" -acodec libvorbis
-f rtp rtp://127.0.0.1:1234 > "g:\sinwave.sdp"
O arquivo SDP resultante tem tamanho de 4.503 bytes (em vez de 4.095 bytes) com configuration=
linha maior; finalmente ambos ffmpeg
e ffplayer
podem receber stream usando esse arquivo SDP.