Skip to content

VLC not playing large MKV (+4GB) with tags/attachments at end of file

MKV is 5.6GB. It has a cover image and tags embedded into the MKV at the end of the file, placing them with an offset over 4GB. This does not happen with a smaller file. I diffed the debug logs to confirm. Win10 x64 Media Player plays both without issue. I suspect there may be a problem with EBML parser encountering unknown tags or with the tags being above the 4GB boundary for some 32-bit variable/parameter that wasn't cast properly for x64. They were the only things that stood out as different between the two files (1.6GB MKV works, 5GB MKV doesn't).

Happens with Vetinari nightly build vlc-3.0.2-20180318-0545-win64. Log attached.

Version Info:

main debug: VLC media player - 3.0.2 Vetinari
main debug: Copyright © 1996-2018 the VideoLAN team
main debug: revision 3.0.1-163-ga5dce7ee3e
main debug: configured with ../extras/package/win32/../../../configure
 '--enable-update-check' '--enable-lua' '--enable-faad'
 '--enable-flac' '--enable-theora' '--enable-twolame'
 '--enable-avcodec' '--enable-merge-ffmpeg' '--enable-dca'
 '--enable-mpc' '--enable-libass' '--enable-x264'
 '--enable-schroedinger' '--enable-realrtsp' '--enable-live555'
 '--enable-dvdread' '--enable-shout' '--enable-goom'
 '--enable-caca' '--enable-qt' '--enable-skins2'
 '--enable-sse' '--enable-mmx' '--enable-libcddb'
 '--enable-zvbi' '--disable-telx' '--enable-nls'
 '--host=x86_64-w64-mingw32' '--enable-debug' 'host_alias=x86_64-w64-mingw32'
 'PKG_CONFIG_LIBDIR=/home/jenkins/workspace/vlc-nightly/vlc-3.0-nightly-win64-x86_64/contrib/x86_64-w64-mingw32/lib/pkgconfig'

Here is where things start going badly, when it tries to start playing the stream:

mkv debug: MKV/Ebml Parser: m_el[mi_level] == NULL
mkv warning: EOF
mkv warning: cannot get block EOF?
main debug: EOF reached

Here's an extract of the log:

mkv debug: MKV/Ebml Parser: m_el[mi_level] == NULL
mkv debug: | | + Meta SAGETV_MEDIAFILEDBID: 
mkv debug: MKV/Ebml Parser: m_el[mi_level] == NULL
mkv debug: loading tags done.
mkv debug: | + Cues
mkv debug: * Unknown (N7libebml8EbmlVoidE)
mkv debug: | - loading cues done.
mkv debug: | + Cluster
mkv debug: MKV/Ebml Parser: m_el[mi_level] == NULL
mkv debug: extracted Duration=9631273
mkv debug: NEW START CHAPTER uid=0
mkv debug: found 0 es
mkv debug: Starting the UI Hook
main debug: using demux module "mkv"
main debug: looking for a subtitle file in F:\Video\Sports\
main debug: looking for meta reader module matching "any": 2 candidates
lua debug: Trying Lua scripts in C:\Users\Michael.DESKTOP-OTH91S8\AppData\Roaming\vlc\lua\meta\reader
lua debug: Trying Lua scripts in C:\Program Files\VideoLAN\VLC\lua\meta\reader
lua debug: Trying Lua playlist script C:\Program Files\VideoLAN\VLC\lua\meta\reader\filename.luac
main debug: no meta reader modules matched
main warning: art already fetched
main debug: `file:///F:/Video/Sports/2018%20Winter%20Olympics-2018-02-08.mkv' successfully opened
mkv debug: MKV/Ebml Parser: m_el[mi_level] == NULL
mkv warning: EOF
mkv warning: cannot get block EOF?
main debug: EOF reached
main debug: removing module "mkv"
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information