Convert DVR to CAVS — Free Online Tool
Convert DVR surveillance and broadcast recordings to CAVS format entirely in your browser, re-encoding the video stream with H.264 (libx264) and preserving AAC audio. CAVS is a Chinese national standard container format, making this conversion essential for workflows requiring compliance with Chinese broadcast or archival specifications.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your DVR 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
DVR files typically store footage captured from digital video recorders using H.264 (libx264) or MJPEG video alongside AAC or MP3 audio in a proprietary container. Converting to CAVS requires a full re-encode: the video stream is encoded using libx264 at CRF 23 (a visually balanced quality level) and the audio is transcoded to AAC at 128k bitrate. Since CAVS only supports libx264 for video and AAC for audio, any MJPEG video or MP3 audio in the source DVR file will be fully re-encoded — not simply remuxed. The output is placed into the CAVS container, which is designed to meet Chinese Audio Video Standard specifications for broadcast and distribution.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary, which handles all demuxing, decoding, re-encoding, and muxing needed to convert the DVR file into CAVS format. |
-i input.dvr
|
Specifies the input DVR file — a proprietary container used by digital video recorders that may hold H.264 or MJPEG video alongside AAC or MP3 audio streams. |
-c:v libx264
|
Re-encodes the video stream using the H.264 encoder (libx264), which is the only video codec supported by the CAVS container format. If the source DVR contains MJPEG, this flag ensures it is fully transcoded to H.264. |
-c:a aac
|
Encodes the audio stream as AAC, the sole audio codec supported by CAVS. If the DVR source contains MP3 audio from libmp3lame, this flag ensures it is transcoded to AAC for CAVS compatibility. |
-crf 23
|
Sets the Constant Rate Factor for H.264 video quality at 23, the default balance between visual fidelity and file size. Lower values (e.g., 18) produce higher quality at larger file sizes, which is worth considering when re-encoding lossy DVR footage to minimize generational quality loss. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, the standard default for voice and general-purpose audio. For DVR recordings containing critical audio such as surveillance speech, increasing this to 192k or 256k may improve intelligibility in the CAVS output. |
output.cavs
|
Specifies the output filename with the .cavs extension, which tells FFmpeg to mux the encoded H.264 video and AAC audio into a CAVS-format container compliant with the Chinese Audio Video Standard. |
Common Use Cases
- Preparing surveillance footage originally recorded on a DVR system for submission to Chinese regulatory or broadcast authorities that require CAVS-compliant files
- Archiving captured television broadcast recordings from a DVR into a CAVS container for long-term storage within a Chinese media library
- Converting DVR security camera footage to CAVS format to meet contractual or technical requirements from Chinese broadcast partners
- Re-packaging DVR recordings that use MJPEG video into a CAVS file with H.264 encoding, significantly reducing file size while maintaining acceptable visual quality
- Transforming proprietary DVR footage into CAVS for use in post-production pipelines that are standardized around Chinese national format specifications
- Producing CAVS output from DVR source material for compatibility with Chinese media players or set-top box devices that enforce the national standard
Frequently Asked Questions
Yes, this is a lossy-to-lossy conversion, so some quality degradation is unavoidable. The video is re-encoded from its DVR source (H.264 or MJPEG) into H.264 at CRF 23, which is a widely accepted balance between quality and file size. If your source DVR file already uses H.264, re-encoding introduces a second generation of compression loss; lowering the CRF value (e.g., to 18) will reduce this impact at the cost of a larger output file.
The CAVS container format, as a Chinese national broadcast standard, mandates H.264 (libx264) as its video codec. MJPEG, which is sometimes used in DVR recordings for frame-accurate editing or certain surveillance systems, is not compatible with the CAVS specification. As a result, any MJPEG-encoded DVR source must be fully transcoded to H.264 during this conversion — there is no option to copy the stream as-is.
Adjust the -crf flag value in the command. The scale runs from 0 (lossless) to 51 (worst quality), with 23 as the default. For higher-quality output suitable for archival use, try -crf 18; for smaller file sizes where some quality loss is acceptable, try -crf 28 or -crf 36. Because this is a re-encode from a lossy DVR source, going below CRF 18 offers diminishing returns and only increases file size without recovering lost detail.
The displayed command converts a single file, but you can adapt it for batch processing on your desktop using a shell loop. On Linux or macOS, use: for f in *.dvr; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.dvr}.cavs"; done. On Windows Command Prompt, use a for loop with the equivalent syntax. This is especially useful for processing large collections of surveillance footage that exceed the 1GB browser limit.
No. Neither DVR nor CAVS supports subtitles, chapters, or multiple audio tracks in this conversion pipeline. Only the primary video and audio streams are carried through. Any embedded metadata in the DVR file's proprietary container structure is also likely to be lost, as CAVS has its own metadata model and the re-encoding process does not map DVR-specific tags to CAVS fields.
File size depends on the encoding settings and the nature of the source footage. If your DVR used MJPEG video (which has very large per-frame sizes), the CAVS output with H.264 at CRF 23 will typically be significantly smaller. If the DVR source was already efficiently compressed H.264, the output size will be similar but potentially slightly larger due to re-encoding overhead. Surveillance footage with static backgrounds compresses especially well with H.264, often yielding smaller CAVS files than the original DVR recording.
Technical Notes
The CAVS container is restricted to a single video codec (libx264) and a single audio codec (AAC), which means this conversion always involves a full transcode rather than a simple remux — even when the DVR source already contains H.264 and AAC streams. The CRF 23 default is appropriate for general-purpose output, but surveillance footage with high motion (e.g., crowd scenes or fast-moving subjects) may benefit from a lower CRF or a higher audio bitrate if speech intelligibility is critical. CAVS does not support transparency, embedded subtitles, chapter markers, or multiple audio tracks, so any such features in the source DVR file are silently discarded. The proprietary DVR container format varies by manufacturer, and some DVR files may require demuxing or stream detection before FFmpeg can correctly identify the codec. If FFmpeg reports an unknown or unsupported stream, specifying the input format explicitly with -f (e.g., -f h264 for raw H.264 streams) may be necessary. Output file sizes will vary significantly based on whether the DVR source used MJPEG or H.264, with MJPEG sources producing substantially smaller CAVS files at equivalent quality.