Reproducible browser test

MOV to MP4 codec compatibility: tested matrix

MOV and MP4 are containers, not codecs. Stream copy adds no new encoding loss only when the existing video, audio, and metadata can be muxed into MP4. This report publishes both successful and failed production-browser tests.

Test result summary

3

public source samples

6

mode combinations tested

3 / 6

observed passes

Tested compatibility matrix

Codec names below are source-declared by the FFmpeg sample archive path and filename. They are not presented as locally probed metadata.

Source-declared streamsModeResultInputObserved outputObservationSample
H.264 + AAC Stream copy Pass 943,785 B 922.3 KB Queue item reached Done and exposed an MP4 download. Source file
H.264 + AAC H.264 re-encode Pass 943,785 B 780.4 KB Queue item reached Done after lossy H.264 re-encoding. Source file
MPEG-1 Video + PCM S16LE Stream copy Fail 18,764 B โ€” Engine exited abnormally (code 1). Source file
MPEG-1 Video + PCM S16LE H.264 re-encode Fail 18,764 B โ€” Engine exited abnormally (code 1); the current command does not explicitly select an audio encoder. Source file
Cinepak + PCM S8 Stream copy Fail 6,912,218 B โ€” Engine exited abnormally (code 1). Source file
Cinepak + PCM S8 H.264 re-encode Pass 6,912,218 B 2.9 MB Queue item reached Done after H.264 re-encoding; target-player audio support was not certified. Source file

Methodology

Test date
2026-08-19
Environment
EasyTools production page in a Chromium-based in-app browser; @ffmpeg/[email protected]
Pass criterion
The per-file queue item reached Done and exposed a downloadable MP4 Blob. A player/device certification was not performed.
Output-size precision
The production UI displays rounded sizes, so this dataset preserves those observed labels instead of inventing exact byte counts.

Commands used by the live component

Stream copy

ffmpeg -i input.mov -c copy -movflags +faststart output.mp4

H.264 re-encode

ffmpeg -i input.mov -vcodec libx264 -preset ultrafast -crf 28 output.mp4

The re-encode command does not explicitly select an audio codec. It must not be described as guaranteed H.264/AAC output.

Reproduce the test

  1. Download the source sample from its FFmpeg archive link; EasyTools does not redistribute the sample binary.
  2. Verify its SHA-256 against the value in the JSON or CSV dataset.
  3. Open the MOV to MP4 converter, select the recorded mode, and run the conversion.
  4. Record the queue result, rounded output size, browser, device, and date. Different environments may produce a different outcome.
Sample SHA-256 values
  • H.264 + AAC3cc0bb87d4826e7ae830fbf935db638ba147c9f87c22e7b1ff384dc0f1b725ca
  • MPEG-1 Video + PCM S16LEb8130f091d97a869ece77dfb8a453c1a8952da9833888933a0460c82dc8c61eb
  • Cinepak + PCM S879a56e97a20a64ed1b88de5cbb93b2609ef0ee7b10f01b40d6a1053dee054336

What this matrix does not prove

  • Three samples are not a certificate for every MOV file, browser, operating system, or playback device.
  • Local processing means selected files are not uploaded by this converter; it does not remove browser memory or CPU limits.
  • A failed sample does not prove that every file using the same named codec will fail; metadata and stream details matter.
  • A generated MP4 still needs codecs accepted by the target player.

Technical sources

The queue summary briefly displayed โ€œFinished converting 0 filesโ€ during one successful run, while the per-file item was Done and exposed a download. Success here is based on the per-file result. This UI-count issue is disclosed rather than used as evidence.