Convert DVR to Y4M — Free Online Tool

Convert DVR recordings to Y4M (YUV4MPEG2) uncompressed video for lossless intermediate processing. This tool decodes the H.264 or MJPEG video stream from your DVR file into raw YUV pixel data, giving you a pristine, uncompressed frame sequence ready for professional video pipelines.

FFmpeg Command

Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg

Free — no uploads, no signups. Your files never leave your browser.

Estimated output:

Conversion Complete!

Download

How It Works

DVR files typically contain H.264 (libx264) or MJPEG video alongside AAC or MP3 audio, stored in a proprietary container used by digital video recorders. During this conversion, FFmpeg fully decodes the compressed video stream from the DVR container — discarding any audio, since Y4M has no audio track support — and writes every frame as uncompressed YUV pixel data into the YUV4MPEG2 container. Because Y4M is lossless and uncompressed, no further encoding is applied; the decoded frames are written directly as rawvideo. The result is a significantly larger file than the original DVR, but one that carries no generation loss and is universally accepted by tools like VirtualDub, AviSynth, VapourSynth, x264, and FFmpeg pipes.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary, the open-source multimedia processing engine running here via WebAssembly (FFmpeg.wasm) entirely within your browser.
-i input.dvr Specifies the input DVR file. FFmpeg will probe and demux the proprietary DVR container to extract the video stream (typically H.264 or MJPEG) and any audio streams for processing.
-c:v rawvideo Sets the video codec to rawvideo, which instructs FFmpeg to write the fully decoded, uncompressed YUV frames directly into the Y4M container without any re-encoding or compression step.
output.y4m Specifies the output file with the .y4m extension, which triggers FFmpeg to use the YUV4MPEG2 muxer. The resulting file will contain a YUV4MPEG2 header followed by uncompressed frame data, with no audio track.

Common Use Cases

  • Feed surveillance or broadcast DVR footage into a lossless video processing pipeline (e.g., AviSynth or VapourSynth filters) without introducing additional compression artifacts from re-encoding.
  • Use Y4M as an intermediate format when upscaling or denoising DVR security footage with external tools like Topaz Video AI, which prefer uncompressed input to avoid stacking lossy compression.
  • Pipe DVR-sourced frames directly into a software encoder like x264 or x265 via stdin for precise encoding control unavailable through standard DVR playback software.
  • Perform frame-accurate analysis or forensic examination of surveillance footage by extracting raw YUV frames where no codec-level processing can obscure pixel-level detail.
  • Prepare DVR broadcast captures for color grading or standards conversion in professional NLE workflows that require an uncompressed intermediate rather than a re-encoded proxy.
  • Validate the actual decoded output of a DVR's H.264 or MJPEG stream for quality assessment or codec debugging by inspecting the raw YUV data without a lossy encode step.

Frequently Asked Questions

DVR files store video using lossy compression codecs like H.264 or MJPEG, which can achieve 50:1 or greater compression ratios. Y4M is completely uncompressed — every video frame is stored as raw YUV pixel data with no compression whatsoever. A one-minute DVR clip that is 100MB compressed can easily become 5–20GB as a Y4M file, depending on resolution and frame rate. This is expected and is precisely what makes Y4M useful as a lossless intermediate.
No. The YUV4MPEG2 (Y4M) format does not support audio tracks — it is a video-only container by design. When FFmpeg converts your DVR file to Y4M, all audio streams (AAC, MP3, etc.) are automatically dropped. If you need to preserve the audio for later use, you should extract it separately from the original DVR file before or alongside this conversion using a separate FFmpeg command.
The conversion itself introduces no additional quality loss. FFmpeg decodes the DVR's compressed video stream and writes the decoded frames directly as uncompressed rawvideo in the Y4M container. However, the quality ceiling is set by the original DVR recording — any compression artifacts already present in the H.264 or MJPEG source will be visible in the Y4M output. Y4M simply preserves the decoded result exactly as-is, without adding any new degradation.
You cannot include audio in the Y4M output since the format does not support it, but you can run a second simultaneous output in the same FFmpeg command. For example: ffmpeg -i input.dvr -c:v rawvideo output.y4m -vn -c:a aac audio.aac. This tells FFmpeg to write the video as Y4M while also extracting the audio to a separate AAC file in one pass, avoiding the need to decode the DVR file twice.
Yes. On Linux or macOS, you can loop over files in a shell: for f in *.dvr; do ffmpeg -i "$f" -c:v rawvideo "${f%.dvr}.y4m"; done. On Windows Command Prompt, use: for %f in (*.dvr) do ffmpeg -i "%f" -c:v rawvideo "%~nf.y4m". Be mindful of available disk space before batch processing, since Y4M files are uncompressed and can be many times larger than the source DVR files.
By default, FFmpeg will use the pixel format decoded from the DVR source — typically yuv420p for H.264 content or yuvj420p for MJPEG content. Most downstream tools that accept Y4M (such as x264, VapourSynth, and AviSynth) handle yuv420p natively. If your pipeline requires a specific pixel format like yuv444p, you can add -pix_fmt yuv444p to the FFmpeg command before the output filename. Mismatched pixel formats can cause color errors or rejection by strict Y4M readers.

Technical Notes

Y4M (YUV4MPEG2) is intentionally minimal — it stores a small plaintext header per file and per frame describing resolution, frame rate, interlacing, and pixel format, followed by raw YUV data. FFmpeg's rawvideo codec is used as the encoder, which is not an encoder in the traditional sense but simply a passthrough writer for decoded frames. Because DVR containers are proprietary and vary by manufacturer, FFmpeg may not always successfully demux every DVR variant; some DVR files from obscure hardware may require remuxing to a standard container like MP4 or MKV first. The absence of audio support in Y4M is a hard format limitation, not a tool restriction. Interlaced DVR content (common in broadcast capture DVRs using NTSC or PAL standards) will be preserved as interlaced frames in the Y4M output unless you explicitly add a deinterlace filter such as -vf yadif. Metadata, chapter markers, and subtitle streams present in the DVR file are all discarded, as Y4M supports none of these.

Related Tools