I have an application that captures audio and video from a Logitech c910 webcam and saves it in Matroska files, with the video encoded as Motion JPEG (MJPEG) and the audio encoded as raw 16-bit PCM. These files play correctly in Totem and Banshee on Ubuntu 11.04, but VLC 1.* always had problems decoding the MJPEG frames:
I discovered that ffmpeg used to have the same problem, see http://lscube.org/pipermail/ffmpeg-issu ... 12382.html for example, but this was fixed in August 2011 IIRC. I have confirmed that recent releases of ffmpeg do handle my Matroska files correctly.
When I noticed that VLC 2.0 had been released, I was hoping that it would incorporate the ffmpeg fix and now be able to play my Matroska files as well, but in fact 2.0 does not recognize them at all. I don't get garbled playback; I get nothing. Apparently 2.0 (and also the latest nightly) completely fail to parse the Matroska header.
This is what VLC 1.1.* sees:
...which is correct, and this is what 2.* makes of the same file:
I put a sample file up at http://thomasokken.com/vlc/media-20120109-140030.mkv. There's a human-readable dump of the file's header at http://thomasokken.com/vlc/media-201201 ... 30.mkv.png. (Note that in the actual file, the "segment" element has length "undefined" (since the mkv is generated by a streaming server) but I had to manually edit that to a definite length in order to get EBML Viewer to open it. I made no other changes to the file. The file I uploaded to my web server is the unmodified original.)
N.B. I have verified the "old" behavior (container correctly parsed and streams correctly decoded, but frames garbled because of incompatibility between ffmpeg libs and Logitech camera) in VLC 1.1.13 on Linux, 1.1.11 on Windows, and 1.1.8 on OS X. I observed the "new" behavior (container not correctly parsed; no output at all) in 2.0 on Linux, Windows, and OS X, and in 2.1.0-git-20120217-0011-win32 on Windows.
- Thomas