PromyLOPh/pianobar

Bad audio

yuppox opened this issue · 13 comments

Subject of the issue

I'm having trouble with crackling/bad audio during playback. It stutters or has noise/crackling during playback.
My device/OS package is v2019.02.14. I also tried v2020.11.28 (compiled on the device).

Not sure where to find the libav version.

Your environment

  • version of pianobar : 2020.11.28
  • Linux distribution / release version : Armbian pine64 (5.4.20-sunxi64 aarch64 GNU/Linux)
  • ffmpeg/libav version and the flags it was compiled with (if you compiled yourself) ?
  • your config file
    audio_quality = high
    buffer_seconds = 10

Steps to reproduce

Install pianobar on Pine64 with Armbian.

Expected behaviour

Audio playback is good quality and does not stutter, crackle, etc.

Actual behaviour

Audio quality is poor.

Is this similar to #706?

Is this similar to #706?

I don't think so. It's always bad and not related to slowing down.

I am also having this issue on Manjaro ARM (aarch64) on Raspberry Pi 4
ffmpeg version n4.3.1

It prints the normal get stations... blah blah then:
ao player is waiting for more frames after code -11 (Resource temporarily unavailable)
then

decoding buffer filled health 6 minHealth 5
ao play signalled it needs more data health 6 minHealth 5

about 1,000 times, and finally

ao player is done
ao play signalled it needs more data health 6 minHealth 5
decoder is done, waiting for ao player

when I hit q. (sorry if the question wasn't aimed at me, but I would have made the same issue if I didn't see this)

I don’t see any messages that might explain audio issues, maybe try the pulseaudio workaround? #395 (comment)

hmm3 commented

I also have a rpi that also has the same issue.

Any chance that the audio can simply be outputted to mpv or vlc? Seems that would solve a lot of the audio issues, rather than having to mess with libao, etc..

We could just pass the URL to an external program, that would be much easier and would eliminate the dependency on ffmpeg as well. The question is: How do you control this program (i.e. pause, skip) and how do you retrieve the play timer? I know mpv has a JSON IPC, but what about vlc or $YOUR_FAVORITE_PLAYER?

hmm3 commented

I didn't realize cvlc didn't have any command line interface. Since I use mpv pretty much exclusively, if it works with that I would be happy. Mpv doesn't seem to require huge binaries either. Mplayer could also be another option. Perhaps also leave the current way of playing as legacy code for those who don't want to deal with mpv or mplayer.