-
Notifications
You must be signed in to change notification settings - Fork 720
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WARNING: Audio Player: ao_open_live() failed: Cannot open device: pulse #1014
Comments
Try removing the "quiet" line and rebooting as suggested here. Another possibility: perhaps the system-wide libao configuration in /etc/libao.conf is not completely ignored, but merged with the user-specific configuration. Try editing it as well. The documentation is vague:
You can also try the Qt Multimedia internal player backend or an external player. |
External player works okay.
|
Does this error happen only for some audio files? Perhaps this is the duplicate of #949? Try playing the default <pronunciation> (anthem) in the "United States" article from English Wikipedia - the FFmpeg backend plays it successfully on my system because it is 16-bit. This inability of libao+pulseaudio to play 32-bit or fltp audio was my primary reason for implementing the Qt Multimedia backend. |
Nope, it plays audio in some dictionaries.
WARNING: Audio Player: ao_open_live() failed: Cannot open device: pulse, channels:2, rate: 44100, bits: 32. |
If the FFmpeg backend works in some dictionaries, then it probably is the same issue - duplicate of #949. You have probably triggered a different audio file (from another dictionary?), because the "United States" audio file I suggested has s16p format. Alternatively try the "The Star-Spangled Banner" article in English Wikipedia - it's also 16-bit. |
stick with external player |
After a massive system upgrade, including ffmpeg 4.0, the number of audio files successfully pronounced by FFmpeg+libao backend reduced substantially. This includes pronunciations from the "United States" and "The Star-Spangled Banner" articles in English Wikipedia as well as some audio files in my local dictionaries. The new FFmpeg version (and consequently all applications that use it) reports these audio files as 32-bit fltp or 24-bit, while the older FFmpeg version 3.4 reported them as 16-bit or less. This means that libao's pulseaudio plugin refuses to play these files when the latest FFmpeg version is installed. So this issue is not a duplicate, but an exacerbation of #949 caused by changes in FFmpeg 4.0. |
on behalf of @vedgy i reopen issue. |
If this is still a relevant issue for everyone here, I've found this on the other thread. |
Goldendict's external player implementation writes the audio data into a temporary file, launches an external player process, then deletes the temporary file. This is substantially less efficient than passing the audio data buffer in-memory to an internal player. In other words, internal players (FFmpeg+libao and Qt Multimedia) operate strictly in RAM without touching the HDD or SSD. Of course, some (most?) distributions enable tmpfs by default, so this performance difference is irrelevant for many users. Also note that the |
Since libao+pulseaudio cannot play 32-bit or flt/fltp/dbl/dblp audio, the following audio formats are passed through libswresample to convert into AV_SAMPLE_FMT_S16, which is accepted by libao: * AV_SAMPLE_FMT_S32 * AV_SAMPLE_FMT_S32P * AV_SAMPLE_FMT_FLT * AV_SAMPLE_FMT_FLTP * AV_SAMPLE_FMT_DBL * AV_SAMPLE_FMT_DBLP This fixes issue goldendict#949 and issue goldendict#1014. Now FFmpeg+libao internal player can play with pulseaudio backend enabled in /etc/libao.conf . Signed-off-by: hrimfaxi <outmatch@gmail.com>
Since libao+pulseaudio cannot play 32-bit or flt/fltp/dbl/dblp audio, the following audio formats are passed through libswresample to convert into AV_SAMPLE_FMT_S16, which is accepted by libao: * AV_SAMPLE_FMT_S32 * AV_SAMPLE_FMT_S32P * AV_SAMPLE_FMT_FLT * AV_SAMPLE_FMT_FLTP * AV_SAMPLE_FMT_DBL * AV_SAMPLE_FMT_DBLP This fixes issue goldendict#949 and issue goldendict#1014. Now FFmpeg+libao internal player can play with pulseaudio backend enabled in /etc/libao.conf . Signed-off-by: hrimfaxi <outmatch@gmail.com>
Since libao+pulseaudio cannot play 32-bit or flt/fltp/dbl/dblp audio, the following audio formats are passed through libswresample to convert into AV_SAMPLE_FMT_S16, which is accepted by libao: * AV_SAMPLE_FMT_S32 * AV_SAMPLE_FMT_S32P * AV_SAMPLE_FMT_FLT * AV_SAMPLE_FMT_FLTP * AV_SAMPLE_FMT_DBL * AV_SAMPLE_FMT_DBLP This fixes issue goldendict#949 and issue goldendict#1014. Now FFmpeg+libao internal player can play with pulseaudio backend enabled in /etc/libao.conf . Signed-off-by: hrimfaxi <outmatch@gmail.com>
Hi @perfect7gentleman. I have verified that this issue was fixed by #1273. Please close it if the Ffmpeg+libao internal player backend works for you too. |
confirm. fixed. |
FFmpeg-4.0
The text was updated successfully, but these errors were encountered: