filetity

What is a codec, and why .mov to .mp4 can change nothing at all

A codec is the method used to squeeze video or audio down to a practical size, and to unpack it again. The word is the two halves of that job stuck together: coder and decoder. H.264, HEVC, AV1, AAC and MP3 are codecs.

The file extension is usually not one. .mp4, .mov and .mkv are containers: boxes that hold a video stream, an audio stream, subtitles and timing, and say where each begins. The box and the compression inside it are different things, and nearly every confusing thing about video comes from treating them as one.

The same video in three boxes

One H.264 video repackaged into three containers on 2026-09-13, copying the streams rather than re-encoding them, then extracting the raw video back out of each:

FileCodecFile sizeVideo stream inside
.movH.26411,331,19711,215,605 bytes
.mp4H.26411,331,14611,215,605 bytes
.mkvH.26411,327,07911,215,605 bytes

The three files differ in size by a few kilobytes, which is the box itself: its index, its timing table, its metadata. The video inside is the same 11,215,605 bytes in all three, with the same MD5 1b9a2154…. Not similar. The same bytes.

Which is why some conversions are instant

If the codec inside is already one the destination container accepts, converting means unpacking the streams and repacking them. Nothing is decoded, nothing is re-compressed, nothing is lost, and the work is roughly the speed of copying the file. That is called remuxing, and it is what most MOV to MP4 conversions actually are, because a MOV from an iPhone usually holds H.264 or HEVC and MP4 accepts both.

The slow, lossy kind of conversion happens when the codec has to change: HEVC into H.264 for something that cannot play HEVC, or any video into a smaller bitrate. Then every frame is decoded and encoded again, it takes real time, and quality is spent. Two operations with the same name and nothing else in common.

Our MOV to MP4 page takes the first route where it can. Anything that forces the second, a size change, a bitrate target, a codec the container cannot hold, is the reason a conversion that was instant yesterday takes minutes today.

Why a file will not play

Almost always the codec, almost never the container. A player that opens a .mp4 and shows sound with a black screen has read the box correctly and cannot decode the video inside it. The usual culprits are HEVC, which needs licensing many browsers do not have, and AV1, which is newer than a lot of hardware.

Renaming the file does nothing, for the same reason renaming a .png to .jpg does nothing: the extension is a label, and the bytes decide. Converting to H.264 in an MP4 is the combination with the fewest ways to fail.

The ones worth recognising

Repack or re-encode one

These run in your browser, with nothing uploaded, and take the fast route whenever the codec allows it.

filetity is built by Adarsh Mishra. The three files above were made with ffmpeg on 2026-09-13 using stream copy, and the extracted video streams compared by MD5. Corrections welcome: support@filetity.com.