libav - streamen Sie Audio über UDP und lesen Sie es über- oder unterschritten

683
user3091850

Ich streame kleine Audiodateien von einem Himbeer-Pi auf mehrere andere Himbeer-Pi. Die drahtlose Verbindung ist gut, der Durchsatz ist gut, die Ping / Latenz ist gut.

Die Empfänger sehen so aus:

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

Wenn ich den Audiostream (mit -re) so sende:

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

Das Ergebnis auf dem Receiver ist abgehacktes Audio mit vielen davon:

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  

Wenn ich den Audiostream (ohne -re) wie folgt schicke:

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

Das Ergebnis auf dem Receiver ist Skippy-Audio mit vielen davon:

[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 

Wenn ich die Sondengröße am Empfänger erhöhe, ist der erste Ton, den ich wiedergebe, gut und nachfolgende Klänge sind schlecht, da die Sondengröße nur am Anfang gilt.

Die eigentliche Frage: Wie kann ich eine fortlaufende Zwischenspeicherung der Eingabe durch avplay sicherstellen, damit Unter- und Überlesungen / Übersprünge nicht auftreten?

0
Ich scheine mehr Glück zu haben, indem ich der avplay-Befehlszeile? Buffer_size = 400000 hinzufüge. user3091850 vor 7 Jahren 0

1 Antwort auf die Frage

0
user3091850

Ich verwende jetzt:

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

Dies scheint zu helfen und ich glaube, dass weitere Sprünge auf drahtlose Interferenzen und die Tatsache zurückzuführen sind, dass ich UDP verwende.