Remuxing any Xvid-videostream into MKV is being played with microstutters or jerkiness in general on the SMP.
Samples: https://www.mediafire.com/folder/tgxgx8wwkm4vc/xvid
test.avi : Reference file, playback is fine. - GOOD
Mediainfo:
General
Complete name : K:\temp\test.avi
Format : AVI
Format/Info : Audio Video Interleave
File size : 4.96 MiB
Duration : 32s 282ms
Overall bit rate : 1 289 Kbps
Writing library : VirtualDub build 35491/releaseVideo
ID : 0
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : 1
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Codec ID : XVID
Codec ID/Hint : XviD
Duration : 32s 282ms
Bit rate : 1 282 Kbps
Width : 640 pixels
Height : 352 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.237
Stream size : 4.93 MiB (99%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)
test-default.mkv : Remuxing of test.avi using mmg.exe 7.1.0 with its default settings. Playback is jerky (looks like 10fps) or has microstutters every other second, depending on the setting of “match framerate”. - BAD
Mediainfo:
General
Unique ID : 182827350843907799364406480688069588352 (0x898B4457C62EF4668F250B76F701B580)
Complete name : K:\temp\test_default.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 4.95 MiB
Duration : 32s 283ms
Overall bit rate : 1 285 Kbps
Encoded date : UTC 2014-08-11 20:57:48
Writing application : mkvmerge v7.1.0 (‘Good Love’) 32bit built on Jul 27 2014 12:59:18
Writing library : libebml v1.3.0 + libmatroska v1.4.1
DURATION : 00:00:32.283000000
NUMBER_OF_FRAMES : 774
NUMBER_OF_BYTES : 5173664
_STATISTICS_WRITING_APP : mkvmerge v7.1.0 (‘Good Love’) 32bit built on Jul 27 2014 12:59:18
_STATISTICS_WRITING_DATE_UTC : 2014-08-11 20:57:48
_STATISTICS_TAGS : BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTESVideo
ID : 1
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : Yes
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Codec ID : V_MS/VFW/FOURCC / XVID
Codec ID/Hint : XviD
Duration : 32s 282ms
Bit rate : 1 259 Kbps
Width : 640 pixels
Height : 352 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.233
Stream size : 4.85 MiB (98%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)
Default : Yes
Forced : No
test-native.mkv : Remuxing of test.avi using mmg.exe 7.1.0 with the commandline option* “–engage native_mpeg4” enabled. - WORKAROUND/HACK
This option is NOT supported and its usage is NOT recommended by the Matroska-developers (from mmg):
Options meant ONLY for developpers. Do not use them. If something is considered to be an officially supported option then it’s NOT in this list!
Regarding “–engage native_mpeg4”:
Analyze MPEG4 bitstreams, put each frame into one Matroska block, use proper timestamping (I P B B = 0 120 40 80), use V_MPEG4/ISO/… CodecIDs.
Mediainfo:
General
Unique ID : 245599115907427719587474239846347117898 (0xB8C4AB4E56E41ABD8E3F1A640487154A)
Complete name : K:\temp\test_native.mkv
Format : Matroska
Format version : Version 4 / Version 2
File size : 4.94 MiB
Duration : 32s 241ms
Overall bit rate : 1 287 Kbps
Encoded date : UTC 2014-08-11 20:57:48
Writing application : mkvmerge v7.1.0 (‘Good Love’) 32bit built on Jul 27 2014 12:59:18
Writing library : libebml v1.3.0 + libmatroska v1.4.1
DURATION : 00:00:32.241000000
NUMBER_OF_FRAMES : 773
NUMBER_OF_BYTES : 5173195
_STATISTICS_WRITING_APP : mkvmerge v7.1.0 (‘Good Love’) 32bit built on Jul 27 2014 12:59:18
_STATISTICS_WRITING_DATE_UTC : 2014-08-11 20:57:48
_STATISTICS_TAGS : BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTESVideo
ID : 1
Format : MPEG-4 Visual
Format profile : Advanced Simple@L5
Format settings, BVOP : Yes
Format settings, QPel : No
Format settings, GMC : No warppoints
Format settings, Matrix : Default (H.263)
Codec ID : V_MPEG4/ISO/ASP
Codec ID/Info : Advanced Simple Profile
Duration : 32s 241ms
Bit rate : 1 261 Kbps
Width : 640 pixels
Height : 352 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.233
Stream size : 4.85 MiB (98%)
Writing library : XviD 1.2.1 (UTC 2008-12-04)
Default : Yes
Forced : No
Note the differences in the logs of the two MKVs.
avi:
Duration : 32s 282ms
default.mkv:
DURATION : 00:00:32.283000000
NUMBER_OF_FRAMES : 774
Codec ID : V_MS/VFW/FOURCC / XVIDCodec ID/Hint : XviD
native.mkv hack:
DURATION : 00:00:32.241000000
NUMBER_OF_FRAMES : 773
Codec ID : V_MPEG4/ISO/ASP
Codec ID/Info : Advanced Simple Profile
Another workaround is to start playing the stuttering file, pause and skip back to timecode 00:00. Playback is without stuttering or jerkiness after doing this, which suggests that there’s nothing wrong with the file, but with how the SMP is handling it.
* In the mmg-window under “Muxing” / “Add command line options” / “### Development hacks ###”.