Convert MOV to Y4M — Free Online Tool
Convert MOV files to Y4M (YUV4MPEG2) uncompressed video, decoding the MOV container's encoded video stream — typically H.264 or H.265 — into raw, uncompressed YUV pixel data. Y4M is the go-to intermediate format for lossless video pipelines, making this conversion ideal for feeding MOV footage into tools like FFmpeg filters, VirtualDub, or video encoders that expect uncompressed input.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MOV file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
MOV files store video in compressed form, most commonly H.264 (libx264) or H.265 (libx265), wrapped in Apple's QuickTime container. Converting to Y4M fully decodes every compressed video frame into raw YUV planar pixel data — no compression is applied to the output. The Y4M format itself is little more than a plain-text header per frame followed by raw byte data, which is why it grows to enormous sizes but can be piped directly between applications without any decoding overhead. Audio is stripped entirely because Y4M has no audio track specification. The MOV container's metadata, chapters, and subtitle tracks are also discarded, as Y4M supports only raw video frames.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg application — in this browser-based tool, it runs as a WebAssembly binary (FFmpeg.wasm) entirely within your browser, with no server involvement. |
-i input.mov
|
Specifies the input file in QuickTime MOV format. FFmpeg reads the MOV container and identifies all streams — video, audio, subtitles, and chapters — before processing begins. |
-c:v rawvideo
|
Instructs FFmpeg to decode the compressed video stream from the MOV file (typically H.264 or H.265) and write the output as rawvideo — completely uncompressed YUV pixel data, which is what the Y4M format stores. |
output.y4m
|
The output filename with the .y4m extension. FFmpeg infers from this extension that it should wrap the raw video data in the YUV4MPEG2 container format, writing the standard Y4M stream header and per-frame FRAME markers around the raw pixel data. |
Common Use Cases
- Feeding Apple ProRes or H.264 MOV footage from a camera or Final Cut Pro export into a lossless encoding pipeline — for example, piping the Y4M output directly into an AV1 or VP9 encoder for maximum quality control.
- Preparing MOV clips for frame-accurate video analysis tools or computer vision pipelines that require uncompressed YUV input rather than compressed streams.
- Using a MOV recording as a lossless source for VirtualDub2 or Avisynth/VapourSynth scripts, which work natively with Y4M as an input format.
- Stripping away the QuickTime container and all compression artifacts to obtain a 'ground truth' uncompressed version of a MOV clip for quality comparison or metrics measurement (e.g., PSNR/SSIM benchmarking).
- Creating an intermediate Y4M file from a MOV source before applying complex FFmpeg filter chains, avoiding repeated re-encoding of the source material.
- Archiving a specific MOV clip in a container-agnostic, codec-independent format that any standards-compliant video tool can read without needing QuickTime or Apple codecs.
Frequently Asked Questions
This is expected and is the defining characteristic of the Y4M format. Your MOV file stores video with lossy compression — H.264 and H.265 achieve compression ratios of 100:1 or more by discarding perceptually redundant information. Y4M stores every pixel of every frame as raw, uncompressed YUV data with no compression whatsoever. A single minute of 1080p video at 30fps can easily exceed 10–20 GB in Y4M format, compared to a few hundred megabytes in a well-encoded MOV.
The decoding step from MOV to Y4M is lossless in the sense that FFmpeg decodes each compressed frame with full precision and writes the exact decoded pixel values to the Y4M file. However, any quality loss that already existed in the original MOV encoding — from H.264 or H.265 compression — is baked in and cannot be recovered. Y4M simply preserves whatever pixel values came out of the MOV decoder, without introducing any additional degradation.
All of them are dropped. The Y4M format specification only defines a container for raw video frames — it has no mechanism for audio tracks, subtitle streams, or chapter metadata. FFmpeg will output only the first video stream from the MOV file and silently discard everything else. If you need the audio, you should extract it separately from the MOV file with a different FFmpeg command before converting to Y4M.
Yes, and this is actually the most common real-world use of Y4M. On the command line, you can replace the output filename with a pipe (output.y4m becomes pipe:1 or just -) and pipe the raw stream into another encoder like x265, SVT-AV1, or aomenc. For example: ffmpeg -i input.mov -c:v rawvideo -f yuv4mpegpipe - | x265 --y4m - --output output.hevc. This avoids writing a massive intermediate file to disk entirely.
FFmpeg will use the chroma subsampling of the decoded MOV video stream, most commonly YUV 4:2:0 for standard H.264 or H.265 MOV files. The Y4M header encodes this information (e.g., C420 for 4:2:0), so downstream tools can read it correctly. If your MOV source uses 4:2:2 or 4:4:4 (common in ProRes MOV files from professional cameras), the Y4M output will preserve that subsampling accordingly.
Add the -ss flag for a start time and -t flag for duration before the input to seek efficiently: ffmpeg -ss 00:00:30 -i input.mov -t 00:00:10 -c:v rawvideo output.y4m. This example starts at 30 seconds into the MOV and extracts 10 seconds of raw video. Placing -ss before -i uses fast keyframe seeking, which is important when working with large MOV files to avoid decoding the entire file from the beginning.
Technical Notes
The Y4M (YUV4MPEG2) format originated in the mjpegtools project and remains a standard interchange format for uncompressed video piping. FFmpeg writes a global stream header (e.g., YUV4MPEG2 W1920 H1080 F30:1 Ip A0:0 C420) followed by a per-frame FRAME header and raw planar YUV bytes. Because MOV supports a wide range of video codecs — including H.264, H.265, MJPEG, PNG, and Apple ProRes — the decode complexity and output quality will vary depending on what codec is actually stored in the MOV container. FFmpeg will decode whichever video codec is present and output standard YUV; it does not preserve HDR metadata, color primaries, or transfer characteristics in the Y4M stream (these are absent from the Y4M specification), so HDR MOV files will be tone-mapped or have their color metadata silently dropped. Transparency (alpha channels), which MOV supports via codecs like PNG or ProRes 4444, is also lost in Y4M since it has no alpha plane specification. For very large MOV files processed in the browser via FFmpeg.wasm, memory constraints are a practical concern given the uncompressed output size — piping or processing short segments is advisable for high-resolution sources.