Given that a lot of iOS multimedia developers use my suite of test videos to conformance test their apps (see for example the iPad screenshot HERE, with the latest Moli_player Pro HD (a screen capture link showing my Finnish test video I've created and generally use for DVB TS multiple subtitle and audio track conformance testing)), I found it necessary to dedicate a separate article for a new subset of my conformance and speed test suite so that as many of them get notified of the changes as possible. In the article, I also give some info on how for example split H.264 streams should be made well-formed to be flawlessly inserted in, compared to MKV, more restricted containers like M4V.
Up until now, I've used the MKV files linked from THIS article for both hardware decoding and AAC / AC3 testing. The vast majority of players played them back just fine; a month ago, when publishing the article, it was only the then-current (3.5) version of the excellent multimedia player It's Playing that couldn't play them back in hardware as is also mentioned in the article. (The now-current version 3.8 has no problems with these files any more. Of course, "thanks" to Dolby, it can't play back the AC-3 audio any more, unlike any previous version.)
After investigating the reason for this, I've found out that the video stream in these three files lacks a starting keyframe because these streams were just blindly created with an MKV splitter tool (more on them below). This is perfectly OK in the MKV container, which does allow for such malformed H.264 files. Not so with M4V's (MOV's / MP4's), though that is, the files It's Playing (or any other AppStore players offering semi-hardware MKV playback) remuxes the source MKV files in the background. These containers don't allow for videos without a starting keyframe; this is why It's Playing 3.5 refused to remux these files.
I've fixed these videos (but also kept the old ones for conformance testing; that is, the old links are still active); now, they're available as follows:
AAC-only MKV
AC3-only MKV
AC3 + AAC MKV
I've also remuxed them to M4V's (via the latest MP4Tools beta):
AAC-only M4V
AC3-only M4V
AC3 + AAC M4V
The new MKV's are played back flawlessly by It's Playing 3.5 - that is, the old version (still) incompatible with "malformed" H.264 files.
Which apps produce such files?
Generally, most (free) MKV splitter tools. In past articles I even provided a quick tutorial on using Mkvtoolnix for MKV splitting.
Smarter MKV editors may automatically add a keyframe to the beginning of these video streams.
How can you add a starting keyframe if you have a similar video file?
Just use ffmpeg. Issue the ffmpeg -i <inputfilename> -acodec copy -vcodec copy -bsf h264_mp4toannexb <outputfilename> command.
(BTW, this is also discussed in THIS thread. Consult that thread if you don't have ffmpeg and don't know where to download it from. HERE, I've even published a batch tool to quickly iterate over all MKV files in the current directory and save them as M2TS files, along with fixing the missing keyframe. In order to save to MKV files instead, just change m2ts to mkv in the script.)
Up until now, I've used the MKV files linked from THIS article for both hardware decoding and AAC / AC3 testing. The vast majority of players played them back just fine; a month ago, when publishing the article, it was only the then-current (3.5) version of the excellent multimedia player It's Playing that couldn't play them back in hardware as is also mentioned in the article. (The now-current version 3.8 has no problems with these files any more. Of course, "thanks" to Dolby, it can't play back the AC-3 audio any more, unlike any previous version.)
After investigating the reason for this, I've found out that the video stream in these three files lacks a starting keyframe because these streams were just blindly created with an MKV splitter tool (more on them below). This is perfectly OK in the MKV container, which does allow for such malformed H.264 files. Not so with M4V's (MOV's / MP4's), though that is, the files It's Playing (or any other AppStore players offering semi-hardware MKV playback) remuxes the source MKV files in the background. These containers don't allow for videos without a starting keyframe; this is why It's Playing 3.5 refused to remux these files.
I've fixed these videos (but also kept the old ones for conformance testing; that is, the old links are still active); now, they're available as follows:
AAC-only MKV
AC3-only MKV
AC3 + AAC MKV
I've also remuxed them to M4V's (via the latest MP4Tools beta):
AAC-only M4V
AC3-only M4V
AC3 + AAC M4V
The new MKV's are played back flawlessly by It's Playing 3.5 - that is, the old version (still) incompatible with "malformed" H.264 files.
Which apps produce such files?
Generally, most (free) MKV splitter tools. In past articles I even provided a quick tutorial on using Mkvtoolnix for MKV splitting.
Smarter MKV editors may automatically add a keyframe to the beginning of these video streams.
How can you add a starting keyframe if you have a similar video file?
Just use ffmpeg. Issue the ffmpeg -i <inputfilename> -acodec copy -vcodec copy -bsf h264_mp4toannexb <outputfilename> command.
(BTW, this is also discussed in THIS thread. Consult that thread if you don't have ffmpeg and don't know where to download it from. HERE, I've even published a batch tool to quickly iterate over all MKV files in the current directory and save them as M2TS files, along with fixing the missing keyframe. In order to save to MKV files instead, just change m2ts to mkv in the script.)
Last edited: