I have an issues that might be related to this one.
For certain MKV files (but not all of them)
there is a wait of about 20 seconds
before video starts playing.
If vlc window is closed during the delay,
a vlc background process is left running,
but unresponsive.
It prevents opening further videos by clicking on them,
and is unresponsive to graceful termination requests
— it must be forcefully killed to recover.
Operating system: Fedora 35 Beta
Vlc version: 3.0.16, installed from the RPM fusion repository
Another video player, Totem, does not suffer from this problem.
Thus, it seems that at least Wireplumber has an issue.
But is seems possible that also vlc could be improved.
I have gathered some logs
by starting vlc from command line.
The following output appears immediately:
$ vlc video_bad.mkv VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)[00005612b0dd8110] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.[00005612b0e9e340] main audio output error: too low audio sample frequency (0)[00007f2b80cf7850] main decoder error: failed to create audio output[00007f2b68005950] gl gl: Initialized libplacebo v4.157.0 (API v157)libva info: VA-API version 1.12.0libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)[00007f2b68005950] glconv_vaapi_x11 gl error: vaInitialize: unknown libva errorlibva info: VA-API version 1.12.0libva info: Trying to open /usr/lib64/dri/iHD_drv_video.solibva info: Found init function __vaDriverInit_1_12libva error: /usr/lib64/dri/iHD_drv_video.so init failedlibva info: va_openDriver() returns 1libva info: Trying to open /usr/lib64/dri/i965_drv_video.solibva info: Found init function __vaDriverInit_1_12failed to open /usr/lib64/dri/hybrid_drv_video.soNot using hybrid_drv_video.solibva info: va_openDriver() returns 0[00007f2b80c1b080] avcodec decoder: Using Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1 for hardware decodin
Then the long wait ensues,
when it end the following is printed
and the video starts to play:
[00005641f6aaf340] vlcpulse audio output error: digital pass-through stream connection failure: Timeout[00005641f6aaf340] main audio output error: module not functional[00007f6bb0cf7cc0] main decoder error: failed to create audio output
Despite various error messages regarding sound,
the sound works just fine.
However, the sound related errors still seem to be related
since they are the only visible difference
to logs from playing another Matroshka
that not affected by this bug:
$ vlc video_good.mkv VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)[0000562d6f270110] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.[00007fc4a4005740] gl gl: Initialized libplacebo v4.157.0 (API v157)libva info: VA-API version 1.12.0libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)[00007fc4a4005740] glconv_vaapi_x11 gl error: vaInitialize: unknown libva errorlibva info: VA-API version 1.12.0libva info: Trying to open /usr/lib64/dri/iHD_drv_video.solibva info: Found init function __vaDriverInit_1_12libva error: /usr/lib64/dri/iHD_drv_video.so init failedlibva info: va_openDriver() returns 1libva info: Trying to open /usr/lib64/dri/i965_drv_video.solibva info: Found init function __vaDriverInit_1_12failed to open /usr/lib64/dri/hybrid_drv_video.soNot using hybrid_drv_video.solibva info: va_openDriver() returns 0[00007fc4bcc38b00] avcodec decoder: Using Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1 for hardware decoding
EDIT: THis post earlier claimed that,
apart from ordering,
listed the log rows were identical to the rows reported earlier.
Later, I spotted a difference
in the error message in one row.
Edited to reflect that fact.
Second batch of information:
If I apply my workaround of reverting to pipewire-media-session,
reboot,
and play the problematic file again,
there is now delay
and the log contains mainly same rows as with Wireplumber.
The only differences are
that the rows that were printed after the delay
are printed in an earlier position,
and that the vlcpulse error is Timeout in the delay case,
but is Input/Output error in the working case.
Here is the complete log for reference:
$ vlc video.mkv VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)[000055bf593bd110] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.[000055bf59496eb0] main audio output error: too low audio sample frequency (0)[00007fe804cf7f50] main decoder error: failed to create audio output[000055bf59496eb0] vlcpulse audio output error: digital pass-through stream connection failure: Input/Output error[000055bf59496eb0] main audio output error: module not functional[00007fe804cf7f50] main decoder error: failed to create audio output[00007fe7f4005950] gl gl: Initialized libplacebo v4.157.0 (API v157)libva info: VA-API version 1.12.0libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)[00007fe7f4005950] glconv_vaapi_x11 gl error: vaInitialize: unknown libva errorlibva info: VA-API version 1.12.0libva info: Trying to open /usr/lib64/dri/iHD_drv_video.solibva info: Found init function __vaDriverInit_1_12libva error: /usr/lib64/dri/iHD_drv_video.so init failedlibva info: va_openDriver() returns 1libva info: Trying to open /usr/lib64/dri/i965_drv_video.solibva info: Found init function __vaDriverInit_1_12failed to open /usr/lib64/dri/hybrid_drv_video.soNot using hybrid_drv_video.solibva info: va_openDriver() returns 0[00007fe804c1a6f0] avcodec decoder: Using Intel i965 driver for Intel(R) Ivybridge Mobile - 2.4.1 for hardware decoding
I also tried to check what is the difference
between these two files
with mkvinfo.
Unfortunately, it prints a lot of identifying information,
so I will give only part of the header and the audio tracks here,
please ask for more data if needed:
video_bad has this:
mkvinfo video_bad.mkv+ EBML head|+ EBML version: 1|+ EBML read version: 1|+ Maximum EBML ID length: 4|+ Maximum EBML size length: 8|+ Document type: matroska|+ Document type version: 2|+ Document type read version: 2|+ Seek head (subentries will be skipped)|+ Segment information| + Timestamp scale: 1000000| + Multiplexing application: libebml v1.0.0 + libmatroska v1.0.0| + Writing application: mkvmerge v4.0.0 ('The Stars were mine') built on Jun 6 2010 16:18:42| + Track| + Track number: 2 (track ID for mkvmerge & mkvextract: 1)| + Track type: audio| + Codec ID: A_AC3| + Default duration: 00:00:00.032000000 (31.250 frames/fields per second for a video track)| + Audio track| + Sampling frequency: 48000| + Channels: 6
while video_good has this:
mkvinfo video_good.mkv + EBML head|+ EBML version: 1|+ EBML read version: 1|+ Maximum EBML ID length: 4|+ Maximum EBML size length: 8|+ Document type: matroska|+ Document type version: 4|+ Document type read version: 2|+ Seek head (subentries will be skipped)|+ Segment information| + Timestamp scale: 1000000| + Multiplexing application: Lavf58.76.100| + Writing application: Lavf58.76.100|+ Tracks| + Track| + Track number: 5 (track ID for mkvmerge & mkvextract: 4)| + "Lacing" flag: 0| + Language: und| + Codec ID: A_AAC| + Track type: audio| + Audio track| + Channels: 2| + Sampling frequency: 44100| + Output sampling frequency: 44100| + Bit depth: 32| + Codec's private data: size 2