Convert CAVS to MXF — Free Online Tool

Convert CAVS (Chinese Audio Video Standard) files to MXF (Material Exchange Format) for professional broadcast and post-production workflows. This tool re-encodes CAVS video to H.264 using libx264 and transcodes audio to uncompressed PCM 16-bit — the lossless audio standard expected in broadcast-ready MXF deliverables.

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

CAVS files use a proprietary Chinese national standard video codec that is not natively supported by most professional broadcast equipment. During this conversion, the CAVS video stream is fully re-encoded to H.264 (libx264) since the codec must change — there is no passthrough option here. The AAC audio track from the CAVS container is transcoded to PCM 16-bit (pcm_s16le), which is uncompressed linear audio. MXF is a professional wrapper format developed for broadcast interchange, supporting timecode, rich metadata, and multiple audio tracks — none of which CAVS was designed to carry. The result is a broadcast-compliant MXF file compatible with NLEs and playout servers that would never accept a CAVS source.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool. In the browser version, this runs via FFmpeg.wasm compiled to WebAssembly — no installation needed and no files leave your device.
-i input.cavs Specifies the input file in CAVS format. FFmpeg will detect the CAVS container and demux the video and AAC audio streams for re-encoding.
-c:v libx264 Sets the video encoder to libx264 (H.264), fully re-encoding the CAVS video stream since the CAVS codec cannot be passed through into an MXF container.
-c:a pcm_s16le Transcodes the AAC audio from the CAVS source to uncompressed 16-bit little-endian PCM — the broadcast-standard lossless audio codec expected in professional MXF deliverables.
-crf 23 Sets the Constant Rate Factor for the H.264 re-encode to 23, a balanced default. Lower values (e.g., 18) yield higher quality at the cost of larger MXF file size.
-b:a 192k Specifies a 192k audio bitrate parameter. For pcm_s16le this value is not applied as a compression target since PCM is uncompressed, but it is included for compatibility with the conversion pipeline.
output.mxf Defines the output filename with the .mxf extension, which causes FFmpeg to write an MXF OP1a container — a professional broadcast wrapper supporting timecode and rich metadata around the H.264 video and PCM audio streams.

Common Use Cases

  • Preparing CAVS broadcast recordings from Chinese television archives for ingest into professional NLEs like Avid Media Composer or Adobe Premiere Pro, which natively handle MXF
  • Delivering Chinese-standard video content to international broadcast facilities that require MXF with uncompressed PCM audio as part of their technical delivery specifications
  • Archiving CAVS-encoded content into a more universally supported professional container with lossless audio preservation via PCM 16-bit
  • Conforming CAVS source material for use in post-production pipelines where MXF's timecode support is required for frame-accurate editing and synchronization
  • Converting CAVS files captured from Chinese cable or satellite broadcasts into MXF for use in playout servers and broadcast automation systems in international markets
  • Re-wrapping CAVS content into MXF to enable metadata embedding and multiple audio track support required for multilingual broadcast distribution

Frequently Asked Questions

Yes, some quality loss is inherent because the CAVS video codec must be fully re-encoded to H.264 — there is no way to copy the CAVS stream directly into an MXF container since MXF does not support the CAVS codec. The default CRF value of 23 produces visually good quality for most content. If you need higher fidelity, lower the CRF value (e.g., CRF 18) in the FFmpeg command, though this will increase file size.
MXF supports AAC audio, but the default audio codec for MXF in broadcast contexts is pcm_s16le (uncompressed 16-bit PCM) because broadcast facilities and post-production houses universally expect lossless audio in MXF deliverables. PCM audio introduces no additional compression artifacts and ensures the audio is frame-accurately aligned for editing. If your downstream workflow specifically requires AAC in MXF, you can modify the FFmpeg command to use -c:a aac.
The single audio track from the CAVS file will be converted to a single PCM audio track in the MXF output. MXF does support multiple audio tracks, but this tool works with the source content — if your CAVS file only contains one audio stream, the MXF will contain one. To add additional audio tracks you would need to modify the FFmpeg command to include additional -i inputs and map them explicitly.
CAVS is a Chinese national broadcast standard but does not support the kind of rich metadata and timecode structures that MXF is designed to carry. Any timecode or metadata embedded in the MXF output will be generated fresh by FFmpeg rather than carried over from the CAVS source. If accurate timecode is critical for your workflow, you should set it explicitly in the FFmpeg command using the -timecode flag.
The video quality is controlled by the -crf flag, where lower values mean higher quality and larger file size, and higher values mean lower quality and smaller file size. The default is CRF 23, which is a balanced setting. For broadcast-grade output, consider CRF 18 or lower. For example, replace '-crf 23' with '-crf 18' in the command. Note that CRF 0 is mathematically lossless for H.264 but produces very large files.
The command shown processes a single file. To batch convert on your desktop, you can use a shell loop — for example, in bash: 'for f in *.cavs; do ffmpeg -i "$f" -c:v libx264 -c:a pcm_s16le -crf 23 -b:a 192k "${f%.cavs}.mxf"; done'. On Windows Command Prompt you can use a for loop: 'for %f in (*.cavs) do ffmpeg -i "%f" -c:v libx264 -c:a pcm_s16le -crf 23 -b:a 192k "%~nf.mxf"'. The browser tool processes one file at a time.

Technical Notes

CAVS (GB/T 20090) was developed as a Chinese national alternative to H.264/AVC and shares some architectural similarities with MPEG-4, but its codec is essentially incompatible with the professional broadcast ecosystem outside China. Because no MXF profile exists for CAVS video, re-encoding to H.264 (libx264) is the only viable path. The output MXF uses the OP1a operational pattern by default in FFmpeg, which is the most broadly compatible MXF variant for post-production. Audio is transcoded from AAC to uncompressed pcm_s16le — note that the -b:a flag technically applies to the bitrate of AAC-style codecs, but for PCM it is effectively ignored since PCM bitrate is determined by sample rate and bit depth rather than a compression target. The output file size will be significantly larger than the CAVS source primarily due to the uncompressed PCM audio. CAVS files do not support subtitles, chapters, or multiple audio tracks, so none of those can be carried forward. MXF's metadata capabilities (descriptor metadata, material package, timecode tracks) are populated with default values by FFmpeg and would require additional tooling like BMXlib or post-processing in an NLE to fully populate for formal broadcast delivery.

Related Tools