Why does it seem to be so difficult to simply change a video's container?

For example, when I download ".avi" & ".mkv" video's from the internet & want to watch them on my Apple devices (iPhone, iPad, Apple TV), I need them to be ".mp4" instead.

I don't want to spend the time to go through the whole "conversion/transcoding" process with apps like Handbrake when it seems you can simply change their containers out with apps like Mkv2Mp4 or the old Video Container Switcher apps in a fraction of the time.

Problem is, when I use those container changing utilities, various problems arise, like...

  • having mp4's with audio out of sync, or
  • having mp4's with no audio at all, or
  • having mp4's with very jittery video.

I love the speed of these container changing apps but why don't the video's play exactly the same since they're not actually converting the codecs & such?

3 Answers 3


First reason:
Videos / audios in AVI or MKV containers may be encoded by various codecs, and not all them are supported by MP4 containters.

Second reason:
Containers are more than simple boxes for videos, audios, subtitles, etc. with some not so important metadata as author or date/time. They have a lot of unevitable valuable information, e. g. the synchronization between audio and video is possible only due to it.

So there is not a reliable algorithm to convert any AVI -> MP4 or any MKV -> MP4 (and, generally speaking, from one type of container to a different one) without changing the streams (audios, videos, etc.) contained in them - the result may be similar to the one you described.

  • ah! thank you for that explanation. i got an app called "MediaInfo" (on Mac) & after looking at some video's, i see the differences in the MKV's that the MKV2MP4 app can simply change the container on vs the ones it cannot. and i haven't found any AVI's that have any innards that can be used in an MP4. so i guess i can't just have a global batch tool, i'm gonna have to look at each video & make a decision on which utility to use on it. that's a bummer for speed. i wish i could find a handy easy chart that shows which codecs & containers are compatible etc. anyways, thanks! Jun 2, 2017 at 18:48

Faster than converting and possibly ending up with a file that has problems is to install another player like VLC or KMPlayer, etc.


VLC is great on PC Desktop but on Android and iOS it's a bit buggy. There are a few 3rd Party Players for iOS that also claim to play everything.

  • i need mp4's to play on Apple TV & iOS. as far as i'm aware, there's no VLC type options for those. my post isn't about players but thanks for your time anyways. Jun 2, 2017 at 18:49

It is worth mentioning that you don't always have to 'convert/transcode' the file (as you have mentioned), in order to change the wrapper. There is an operation called re-wrap, which re-packages the media from one wrapper to another. This isn't the same as the 'fast container switching' that you have described, as re-wrapping works reliably and is often used in broadcast workflows.

For example, XSquare/XTAccess software allows you to re-wrap media without a licence. If you refer to the list of supported codecs, you will see what re-wraps are possible.

  • This isn't the same as the 'fast container switching' - what's the difference?
    – Gyan
    Jun 29, 2017 at 4:58
  • @Mulvya - it isn't the same because you don't get the negative side effects mentioned by the author of the question (no audio out of sync, missing audio or glitchy video). Why exactly is a good question - XTAccess is not GPL, unlike the other piece of software so my statement is based on empirical evidence, not theoretical.
    – Tony Sepia
    Jun 29, 2017 at 12:19
  • Ok, so XTAccess, as per you, does better remuxing. But they refer to the same process.
    – Gyan
    Jun 29, 2017 at 12:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.