Convert HEVC to FLV — Free Online Tool

Convert HEVC/H.265 video files to FLV format, re-encoding the video stream from H.265 to H.264 (libx264) for compatibility with Flash-based players and legacy streaming infrastructure. This is a full transcode — not a remux — because FLV does not support the H.265 codec natively.

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

HEVC (H.265) and FLV are fundamentally incompatible at the codec level: FLV containers only support H.264 (libx264) or the older Sorenson Spark (FLV1) video codecs, so your H.265 video stream must be fully decoded and re-encoded into H.264. This means every frame is decompressed from H.265 and recompressed using libx264 at CRF 23, a high-quality lossy setting. If your source HEVC file contains audio, it is also transcoded to AAC at 128k bitrate, since FLV requires a compatible audio codec. Because H.265 achieves roughly double the compression efficiency of H.264, expect the output FLV file to be noticeably larger than the HEVC source at comparable visual quality. There is no lossless path here — FLV is a lossy-only container.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool. In the browser, this runs via FFmpeg.wasm compiled to WebAssembly — the same command can be run identically in a local FFmpeg installation for files over 1GB.
-i input.hevc Specifies the input file, which is a raw HEVC/H.265 bitstream or container. FFmpeg automatically detects the H.265 codec and selects the appropriate decoder.
-c:v libx264 Instructs FFmpeg to re-encode the video stream using the libx264 encoder, producing H.264 video. This is mandatory because the FLV container does not support H.265, making transcoding unavoidable.
-c:a aac Encodes the audio stream to AAC using FFmpeg's built-in AAC encoder. AAC is the preferred audio codec for FLV and is required for compatibility with Flash Player and most RTMP-based streaming servers.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, which is the default quality level for H.264 encoding. On the H.264 CRF scale, this is roughly perceptually equivalent to CRF 28 in H.265 — the scale is different between the two codecs. Lower values produce better quality at larger file sizes.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, which is a standard quality level for stereo audio in web video delivery. Increase to 192k or 256k if the source audio is music-heavy or requires higher fidelity.
output.flv Defines the output filename and signals FFmpeg to use the FLV container format. The .flv extension triggers the FLV muxer, which wraps the H.264 video and AAC audio streams into an Adobe Flash Video container.

Common Use Cases

  • Publishing H.265 footage to a legacy RTMP streaming server or Flash-based video platform that only accepts FLV input
  • Preparing HEVC recordings from modern cameras or screen capture tools for playback in older video management systems that predate H.265 support
  • Converting H.265 drone or action camera footage for use in Adobe Flash-era interactive presentations or e-learning modules still deployed on legacy LMS platforms
  • Making HEVC video compatible with older video editing workflows or broadcast hardware that accepts FLV as an interchange format but cannot decode H.265
  • Re-encoding H.265 streams captured from set-top boxes or media servers into FLV for archiving in systems built around Flash Video infrastructure

Frequently Asked Questions

FLV is a tightly scoped container format that Adobe designed specifically for Flash Player delivery, and it only officially supports H.264 and the older Sorenson Spark video codecs. H.265 streams cannot be placed into an FLV container without re-encoding because the container specification has no defined track type or codec tag for HEVC. A remux would produce a broken or unplayable file, so a full transcode from H.265 to H.264 is unavoidable.
Almost certainly larger, sometimes dramatically so. H.265 is roughly twice as efficient as H.264 at the same visual quality, meaning H.264 needs approximately twice the bitrate to match the same perceptual quality. At CRF 23 (the libx264 default), the output will typically be significantly bigger than an H.265 file encoded at its own default CRF 28. For high-resolution or complex footage, the size increase can be 2x or more.
FLV and H.264 have very limited HDR support — HDR metadata embedded in your HEVC source (such as HDR10 or Dolby Vision) will be stripped or ignored during the transcode. The video will be tone-mapped or simply lose its HDR color volume, rendering as SDR in the output. While H.264 inside FLV can technically carry 4K resolution, Flash Player itself was never designed for 4K playback, so very high resolutions may not play correctly in the intended target environment.
FLV supports AAC and MP3 (libmp3lame) as its audio codecs. This converter transcodes any source audio to AAC at 128k bitrate by default, which handles virtually any input audio format including AC-3, EAC-3, Opus, or FLAC that might be present in an HEVC container. If your HEVC file has no audio track, FFmpeg will simply produce an FLV with no audio stream.
To change video quality, modify the -crf value: lower numbers mean higher quality and larger files (e.g., -crf 18 for near-visually-lossless), while higher numbers reduce quality and file size (e.g., -crf 28 for smaller output). For audio, replace the -b:a 128k value with a higher bitrate like -b:a 192k or -b:a 256k for better audio fidelity. For example: ffmpeg -i input.hevc -c:v libx264 -c:a aac -crf 18 -b:a 192k output.flv
Yes. On Linux or macOS, you can loop over files in a directory with: for f in *.hevc; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.hevc}.flv"; done. On Windows Command Prompt, use: for %f in (*.hevc) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv". The browser-based tool processes one file at a time, so the FFmpeg command is especially useful for bulk conversions of large HEVC libraries.

Technical Notes

This conversion involves a full decode-and-reencode pipeline with no shortcuts. The H.265 bitstream is fully decoded in software (libx265 on the input side is read by FFmpeg's hevc decoder) and then recompressed using libx264. One important caveat is that FLV has a practical limit on certain stream parameters — for example, very high bitrate streams or unusual chroma subsampling (such as 4:2:2 or 4:4:4 from professional HEVC sources) may cause compatibility issues with strict Flash Player implementations, which expect 4:2:0 YUV. The CRF 23 default for libx264 is calibrated differently from H.265's CRF scale — H.265 CRF 28 is considered visually equivalent to H.264 CRF 23, so the output quality is roughly comparable to the source if it was encoded at the H.265 default. Metadata such as chapter markers, multiple audio tracks, and subtitle streams present in the source are all dropped during this conversion, as FLV does not support any of these features. If your HEVC source uses 10-bit depth (common in HDR or high-quality encodes), libx264 in FLV output mode will typically downconvert to 8-bit, which is a destructive change that cannot be reversed.

Related Tools