Compress FLV Online — Free File Size Reducer

Compress FLV files directly in your browser by re-encoding the video stream with H.264 (libx264) and audio with AAC, reducing file size while preserving the Flash Video container format. Ideal for shrinking legacy FLV content for archiving or re-streaming without changing the container.

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 files commonly carry H.264 video and AAC audio — the same codecs used in this compression pipeline. Rather than simply remuxing, this tool fully re-encodes the video stream using libx264 with a Constant Rate Factor (CRF) of 23, which instructs the encoder to allocate fewer bits to simpler scenes and more to complex ones, achieving a smaller file size with minimal perceptible quality loss. The audio is re-encoded to AAC at 128 kbps. Because both input and output are FLV containers, no container-level restructuring is needed — the compression savings come entirely from the re-encoding process. The operation runs locally in your browser via FFmpeg.wasm, so your video never leaves your machine.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which is running here as a WebAssembly binary (FFmpeg.wasm) entirely inside your browser — no server processing involved.
-i input.flv Specifies the input Flash Video file. FFmpeg will detect the container as FLV and identify the contained video and audio codecs (which may be H.264, VP6, Sorenson Spark, AAC, or MP3 depending on the source).
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, which is far more bitrate-efficient than older FLV video codecs like VP6 or Sorenson Spark, and is fully compatible with the FLV container.
-crf 23 Sets the Constant Rate Factor for the H.264 encoder to 23, the libx264 default. This is a quality-based encoding mode where the encoder automatically varies bitrate per scene — lower values (e.g., 18) preserve more quality at larger file sizes, higher values (e.g., 28–35) compress more aggressively.
-c:a aac Re-encodes the audio stream using AAC, which is one of the two audio codecs supported in the FLV container alongside MP3. AAC provides better audio quality than MP3 at equivalent bitrates, making it the preferred choice for compressed FLV output.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level that balances audio fidelity with file size and is broadly compatible with Flash-era players and modern media players that support FLV.
output.flv Defines the output file as an FLV container. FFmpeg uses the .flv extension to mux the re-encoded H.264 video and AAC audio into a Flash Video file, maintaining the original container format while achieving a smaller file size.

Common Use Cases

  • Shrink large FLV recordings from legacy screen-capture tools or older streaming platforms so they fit within storage quotas or email attachment limits.
  • Reduce the bitrate of FLV files originally recorded at high quality before re-uploading them to platforms that still accept Flash Video for archival purposes.
  • Compress a library of downloaded FLV videos from early YouTube or Dailymotion archives to free up disk space while keeping them playable in VLC or media servers.
  • Optimize FLV files for re-streaming over low-bandwidth connections by tuning the CRF value upward to aggressively reduce bitrate.
  • Prepare compressed FLV clips for embedding in older Flash-based web applications or legacy intranet portals that require the FLV container specifically.
  • Batch-compress FLV footage from older IP cameras or DVR systems that output natively in Flash Video format, making long recordings more manageable.

Frequently Asked Questions

Yes — because this tool re-encodes the video stream using libx264 with a lossy CRF setting, there will be some generation loss compared to the original. The default CRF of 23 is a widely accepted balance between file size and visual quality. If your source FLV was already heavily compressed, consider using a lower CRF (e.g., 18) to limit additional degradation, at the cost of a larger output file.
This particular tool is designed specifically to compress FLV-to-FLV, which is useful when you need to maintain the Flash Video container — for example, for legacy Flash players, older streaming servers, or archival workflows that require the original format. If you need broader device compatibility, you should use a separate FLV-to-MP4 conversion tool instead.
It depends heavily on how the source FLV was encoded. If the original was recorded at a high bitrate or with a less efficient codec (such as the legacy Sorenson Spark or VP6 video codec sometimes found in older FLVs), re-encoding with libx264 at CRF 23 can yield very significant reductions — sometimes 50–70%. If the source was already encoded with H.264 at a reasonable bitrate, the savings will be more modest, typically 20–40%.
Yes. FFmpeg can decode both VP6 and Sorenson Spark (FLV1) video codecs found in older Flash Video files, and this tool will re-encode that video stream into H.264 (libx264) inside the FLV container. This can actually produce a substantial file size reduction because H.264 is significantly more efficient than those older codecs.
Change the number after -crf to control video quality. Lower values mean higher quality and larger files (CRF 18 is near-visually lossless for most content), while higher values produce smaller files with more visible compression (CRF 28–35 is noticeable but acceptable for archival or preview use). You can also adjust audio bitrate by changing the value after -b:a, for example replacing 128k with 96k to further reduce file size, or 192k for higher audio fidelity.
Yes. On Linux or macOS, you can run a shell loop: for f in *.flv; do ffmpeg -i "$f" -c:v libx264 -crf 23 -c:a aac -b:a 128k "compressed_$f"; done. On Windows Command Prompt, use: for %f in (*.flv) do ffmpeg -i "%f" -c:v libx264 -crf 23 -c:a aac -b:a 128k "compressed_%f". This is especially useful for large FLV libraries or files over 1GB that exceed the browser tool's limit.

Technical Notes

FLV is a container format that supports several video codecs including Sorenson Spark (FLV1), VP6, and H.264, as well as audio codecs including MP3 and AAC. This compression tool standardizes the output to H.264 video and AAC audio — the most efficient and widely supported combination within the FLV container. One important limitation: FLV does not support subtitles, chapters, or multiple audio tracks, so any such streams in the source file will be dropped silently. The format also lacks support for transparency (alpha channel video). Metadata embedded in the source FLV (such as duration, creation date, or onMetaData tags) may not be fully preserved after re-encoding, as the metadata block is regenerated based on the new encoded stream. If precise metadata preservation matters, verify the output with a tool like MediaInfo. Because libx264 uses variable bitrate encoding under CRF mode, the output bitrate will fluctuate based on scene complexity — high-motion FLV content (e.g., gameplay recordings) will compress less efficiently than static or low-motion content (e.g., screen recordings or talking-head videos).

Related Tools