PromyLOPh / pianobar

Console-based pandora.com player
http://6xq.net/pianobar/
Other
1.73k stars 323 forks source link

Bad audio #709

Closed yuppox closed 3 months ago

yuppox commented 3 years ago

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

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.

PromyLOPh commented 3 years ago

Is this similar to #706?

yuppox commented 3 years ago

Is this similar to #706?

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

big-caballito commented 3 years ago

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

PromyLOPh commented 3 years ago

Can you set PIANOBAR_DEBUG=2, which should print alot of debug output from the player, and post the log here?

big-caballito commented 3 years ago

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)

PromyLOPh commented 3 years ago

I don’t see any messages that might explain audio issues, maybe try the pulseaudio workaround? https://github.com/PromyLOPh/pianobar/issues/395#issuecomment-25294874

hmm3 commented 3 years ago

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..

PromyLOPh commented 3 years ago

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 3 years ago

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.