Convert FLV to CAVS — Free Online Tool

Convert FLV files to CAVS format entirely in your browser, re-encoding the video stream with H.264 (libx264) and audio with AAC to produce a file conforming to the Chinese Audio Video Standard. This is useful for preparing legacy Flash Video content for Chinese broadcast or distribution pipelines that require CAVS-compatible containers.

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

FLV (Flash Video) is an Adobe container that typically carries H.264 or Sorenson Spark video alongside AAC or MP3 audio. During this conversion, the video stream is re-encoded using libx264 (H.264) at CRF 23, and the audio is re-encoded to AAC at 128k bitrate — both of which are the only codecs supported by the CAVS output container as implemented here. Because FLV's H.264 stream cannot be directly remuxed into a CAVS container without re-wrapping and because CAVS requires specific signaling, a full transcode is performed. The result is a .cavs file built around H.264 video and AAC audio, packaged in a way that aligns with the Chinese national broadcast standard container.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg program, the open-source multimedia processing engine that handles all decoding, re-encoding, and container remuxing for this FLV-to-CAVS conversion.
-i input.flv Specifies the input Flash Video file. FFmpeg will detect the container as FLV and automatically identify the enclosed video and audio streams, whether they are encoded as H.264, Sorenson Spark, VP6, AAC, or MP3.
-c:v libx264 Sets the video encoder to libx264, which re-encodes the FLV video stream (regardless of its original codec) into H.264, the only video codec supported in this CAVS output configuration.
-c:a aac Re-encodes the audio stream to AAC using FFmpeg's native AAC encoder, replacing whatever audio codec was present in the FLV source (commonly MP3 or AAC) with a conformant AAC stream suited to the CAVS container.
-crf 23 Sets the Constant Rate Factor for the libx264 encoder to 23, the default quality level that balances file size and visual fidelity well for most FLV source material. Lower values produce better quality at larger file sizes.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is standard quality for stereo audio and suitable for most speech and music content originating from FLV sources.
output.cavs Specifies the output filename with the .cavs extension, which signals FFmpeg to mux the encoded H.264 video and AAC audio into a CAVS-format container conforming to the Chinese Audio Video Standard.

Common Use Cases

  • Preparing archived FLV video content from legacy Flash-based Chinese web portals for repackaging into CAVS format for domestic broadcast compliance.
  • Converting FLV recordings of Chinese-language events or conferences into CAVS for submission to state or regional broadcasters that mandate the national standard format.
  • Migrating a library of old Flash Video files to a CAVS container as part of a digitization project targeting Chinese digital distribution platforms.
  • Re-encoding FLV source material from Chinese streaming archives to CAVS for long-term preservation within institutions that catalog content under Chinese national media standards.
  • Testing CAVS playback pipelines or broadcast encoding workflows by converting readily available FLV source files into the target format without needing proprietary encoding tools.

Frequently Asked Questions

Yes, this is a lossy-to-lossy transcode. The FLV source likely already contains H.264 or Sorenson-encoded video and AAC or MP3 audio, and re-encoding those streams with libx264 at CRF 23 and AAC at 128k introduces a generation of compression loss. If your FLV source uses H.264, the quality difference at CRF 23 is generally subtle for most content, but for high-motion or high-detail footage you may want to lower the CRF value (e.g., 18) to preserve more fidelity. If your FLV uses Sorenson Spark video, the quality impact may be more pronounced since that codec is inherently lower quality to begin with.
The Chinese Audio Video Standard defines AVS (Audio Video coding Standard) as its native video codec, but this tool's CAVS output is implemented using libx264 (H.264) rather than a native AVS encoder, because FFmpeg's AVS encoder support is limited and not widely available in WebAssembly builds. The .cavs container is used here as a wrapper around H.264 and AAC streams, which provides compatibility for broadcast workflows that accept CAVS-packaged files regardless of the internal codec.
FLV files commonly carry audio as either AAC or MP3. Even if the source is already AAC, the audio is re-encoded rather than stream-copied because the CAVS container requires conformant AAC framing and bitrate signaling that may not match what's stored in the FLV wrapper. Re-encoding guarantees a clean, compatible AAC stream in the output. If you want to avoid any audio quality loss and are confident your source is already clean AAC, you can modify the FFmpeg command to use '-c:a copy', though this is not guaranteed to be compatible with all CAVS playback systems.
FLV has limited metadata support and no native chapter or subtitle tracks. During conversion to CAVS, any embedded FLV metadata tags (such as duration, creation date, or stream info) are not preserved in the output, as the CAVS container does not support rich metadata passthrough. Subtitles and chapters are not supported by either format in this tool, so none of that data is carried over. If your FLV contains onMetaData tags with critical information, you should note those values separately before converting.
Video quality is controlled by the '-crf' flag, which accepts values from 0 (lossless, very large file) to 51 (worst quality, smallest file), with 23 as the default. For higher quality output from your FLV source, lower the CRF value — for example, use '-crf 18' for near-transparent quality. For a smaller file where quality is less critical, increase it to '-crf 28' or '-crf 35'. The CRF scale is logarithmic, so each increment of roughly 6 halves or doubles the bitrate. You can also change the audio bitrate by modifying the '-b:a' value, for example to '-b:a 192k' for higher fidelity audio.
Yes. On Linux or macOS, you can use a shell loop: 'for f in *.flv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.flv}.cavs"; done'. On Windows Command Prompt, use: 'for %f in (*.flv) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.cavs"'. This is especially practical for large libraries of legacy Flash Video files, and since this browser tool supports files up to 1GB, the command-line approach is the better choice for bulk processing or files exceeding that limit.

Technical Notes

FLV is a legacy Adobe container that saw widespread use in early web video delivery via Flash Player, and many archives still hold large quantities of FLV content encoded with either Sorenson Spark (FLV1), VP6, or H.264 video. When converting to CAVS, all incoming video codecs are normalized to H.264 via libx264, meaning even non-H.264 FLV sources are fully supported. The CAVS format as used here is constrained to a single video codec (libx264) and single audio codec (AAC), offering no transparency, subtitle, chapter, or multi-track audio support — matching the limitations of the FLV input format. One important caveat is that CAVS players and broadcast systems outside China rarely support .cavs files, so this conversion is most relevant for workflows explicitly targeting Chinese standards-compliant infrastructure. File sizes will vary depending on the complexity and duration of the source FLV, but at CRF 23 with 128k AAC, output files are generally comparable in size to a well-encoded H.264 MP4 at equivalent settings. There is no bit-for-bit lossless path from FLV to CAVS given the nature of both formats.

Related Tools