Convert DVR to MOV — Free Online Tool

Convert DVR surveillance and broadcast recordings to MOV format, re-encoding the H.264 video stream and AAC audio into Apple's QuickTime container — making your footage compatible with Final Cut Pro, iMovie, and professional macOS editing workflows.

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 store H.264 video and AAC audio in a proprietary container structure tied to the recording device's firmware. During conversion, FFmpeg decodes the video stream and re-encodes it using libx264 at CRF 23 — a visually transparent quality level — while the AAC audio is re-encoded at 128k bitrate. The output is wrapped in Apple's MOV container with the +faststart flag applied, which relocates the file's metadata index to the beginning of the file. This is a full transcode rather than a remux because the DVR container's stream packaging is not directly compatible with MOV, even when both nominally use H.264 video and AAC audio internally.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that handles demuxing the proprietary DVR container, decoding the H.264 and AAC streams, re-encoding them, and muxing the output into the MOV container.
-i input.dvr Specifies the input DVR file. FFmpeg will probe the file to identify the proprietary container structure and detect the enclosed video (typically H.264) and audio (typically AAC) streams produced by the digital video recorder.
-c:v libx264 Re-encodes the video stream using the libx264 encoder, producing H.264 video inside the MOV container. This is necessary because the DVR's H.264 stream packaging is not directly remuxable into MOV without transcoding.
-c:a aac Re-encodes the audio stream using FFmpeg's native AAC encoder, which is natively supported by both DVR recordings and the MOV container — ensuring compatibility with QuickTime Player, iMovie, and Final Cut Pro on macOS.
-crf 23 Sets the Constant Rate Factor for the libx264 encoder to 23, which is the default quality level — producing visually transparent H.264 output for most surveillance and broadcast footage without unnecessarily inflating the file size.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is sufficient for speech-heavy DVR recordings like surveillance audio and broadcast dialogue, balancing file size with acceptable audio fidelity.
-movflags +faststart Moves the MOV container's metadata index (moov atom) to the start of the output file, enabling the converted footage to begin playback immediately when opened over a network or shared via cloud storage — a standard best practice for MOV delivery.
output.mov Specifies the output filename with the .mov extension, signaling FFmpeg to wrap the re-encoded H.264 video and AAC audio in Apple's QuickTime MOV container format.

Common Use Cases

  • Import surveillance camera footage from a DVR system into Final Cut Pro or iMovie for editing, trimming, or annotating clips for evidence or documentation purposes
  • Archive broadcast television recordings captured by a DVR box into MOV format for long-term storage in an Apple-ecosystem media library
  • Prepare DVR-recorded footage for color grading or post-production in professional macOS video editing suites that expect QuickTime-native container formats
  • Convert security camera recordings into MOV so they can be shared with legal teams or insurance adjusters using Apple devices and standard QuickTime Player
  • Extract and repackage DVR recordings into MOV with chapter marker support, enabling structured review of long surveillance sessions split by timestamp
  • Convert broadcast capture recordings from a DVR to MOV to enable multi-audio track workflows, such as adding a commentary track alongside the original audio in QuickTime-compatible editors

Frequently Asked Questions

Because DVR files already use lossy H.264 compression, re-encoding to MOV with libx264 at CRF 23 introduces a second generation of compression loss. In most cases this is visually imperceptible for surveillance or broadcast footage, but fine detail in high-motion scenes may soften slightly. If preserving the original quality as closely as possible is critical, lower the CRF value toward 18 in the FFmpeg command — lower numbers mean higher quality and larger file sizes.
While MOV and MP4 share similar codec support, MOV is Apple's native container and integrates more deeply with Final Cut Pro, iMovie, and QuickTime Player on macOS. MOV also supports features that MP4 handles inconsistently, including multiple audio tracks, chapter markers, and transparency — all of which are preserved in this conversion. For professional editing workflows on Apple hardware, MOV is the preferred delivery container.
DVR containers store proprietary metadata — including recording timestamps, camera channel identifiers, and device-specific tags — in formats that FFmpeg cannot reliably parse or map to MOV metadata fields. As a result, most DVR-specific metadata will not carry over to the output MOV file. Standard container metadata like duration and stream information will be present, but recording date and camera labels should be documented separately before conversion if they are needed.
The -movflags +faststart flag reorganizes the MOV file so that its index data (the 'moov atom') is placed at the beginning of the file instead of the end. This has no effect on video or audio quality whatsoever — it only changes the file's internal structure. The practical benefit is that the MOV file can begin playing immediately when streamed or opened over a network, without waiting for the entire file to download.
The -crf 23 flag controls video quality in the libx264 encoder — lower values produce higher quality and larger files, while higher values produce smaller files with more compression. The scale runs from 0 (lossless) to 51 (worst quality). For DVR surveillance footage where fine detail matters, try -crf 18 for near-lossless output. For compact archival copies where some quality loss is acceptable, -crf 28 or -crf 36 will significantly reduce file size. Adjust the value in the command before running it locally.
Yes. On Linux or macOS, you can loop over all DVR files in a directory with a shell one-liner: for f in *.dvr; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "${f%.dvr}.mov"; done. On Windows Command Prompt, use: for %f in (*.dvr) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "%~nf.mov". This is especially useful for processing large batches of surveillance recordings that exceed the 1GB browser limit.

Technical Notes

DVR containers are proprietary formats with no standardized specification, meaning their internal stream layout varies significantly between manufacturers — common brands include Hikvision, Dahua, and various generic OEM systems. FFmpeg's DVR demuxer handles the most common variants but may struggle with encrypted or highly proprietary recordings from niche hardware. Because both the input DVR and output MOV use H.264 video and AAC audio, it might seem like a simple remux should be possible, but the DVR container's stream framing and packet structure typically prevents direct stream copying without decode/re-encode. The MOV output supports lossless codecs like PNG video and FLAC audio if you need a lossless intermediate, though this is rarely necessary for surveillance footage. File sizes after conversion will often be comparable to or slightly smaller than the source DVR file, depending on the original bitrate used by the DVR system. MOV's support for multiple audio tracks, chapter markers, and transparency are all available in the output container but require additional FFmpeg flags to populate — the default command produces a clean single-track H.264/AAC MOV file optimized for broad Apple compatibility.

Related Tools