libav - fluxo de áudio via resultados UDP em overread ou underrun

0

Estou transmitindo pequenos arquivos de áudio de um framboesa-pi para vários outros framboesa-pi. A conexão sem fio é boa, o throughput é bom, o ping / latência é bom.

Os receptores são assim:

avplay -probesize 32 -f mp3 -vn -i udp://239.255.0.1:8001

Quando eu enviar o fluxo de áudio (usando -re) assim:

avconv -re -i 1.wav -f mp3 -b:a 128K -vn udp://239.255.0.1:81?localaddr=192.168.0.1

O resultado no receptor é áudio entrecortado com muito isso:

ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred0B f=0/0   
ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred0B f=0/0   
ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred0B f=0/0   
ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred0B f=0/0   
ALSA lib pcm.c:7843:(snd_pcm_recover) underrun occurred0B f=0/0 

Quando eu envio o fluxo de áudio (sem usar -re) assim:

avconv -i 1.wav -f mp3 -b:a 128K -vn udp://239.255.0.1:81?localaddr=192.168.0.1

O resultado no receptor é um áudio com muito isto:

[mp3 @ 0x72501740] overread, skip -10 enddists: -7 -7  0B f=0/0   
[mp3 @ 0x72501740] overread, skip -7 enddists: -5 -5
[mp3 @ 0x72501740] overread, skip -9 enddists: -6 -6   0B f=0/0   
[mp3 @ 0x72501740] overread, skip -5 enddists: -1 -1   0B f=0/0   
[mp3 @ 0x72501740] overread, skip -7 enddists: -2 -2

Se eu aumentar o probesize no receptor, o primeiro som que reproduzo é bom e os sons subseqüentes são ruins porque o probesize só se aplica inicialmente.

A pergunta atual: Como posso fazer com que o avplay faça o buffer continuamente da entrada corretamente para que não ocorram underraps e overreads / skips?

    
por user3091850 21.06.2016 / 23:20

1 resposta

0

Agora estou usando:

avplay -probesize 32 -f mp3 -vn -i udp://239.255.0.1:8001?buffer_size=400000

Isso parece ajudar e acredito que qualquer falha adicional seja causada pela interferência sem fio e pelo fato de eu estar usando o UDP.

    
por 02.07.2016 / 17:25