Convert MKV to FLV — Free Online Tool

Convert MKV files to FLV format using H.264 video and AAC audio — the codec pairing historically used for Adobe Flash-based web video delivery. This tool runs entirely in your browser via FFmpeg.wasm, so your files never leave your device.

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

MKV is a flexible container that can hold a wide variety of codecs, but FLV has strict codec requirements: it supports only H.264 or the older Sorenson Spark (FLV1) for video, and AAC or MP3 for audio. During this conversion, the MKV's video stream is re-encoded to H.264 using libx264 (even if the source is already H.264, since MKV and FLV handle stream packaging differently), and the audio is encoded to AAC at 128k bitrate. Any subtitles, chapters, multiple audio tracks, or metadata embedded in the MKV will be dropped, as FLV does not support these features. The result is a lossy, web-oriented container suited for legacy Flash-based players and certain streaming infrastructure.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg binary — the open-source multimedia processing engine that handles the MKV-to-FLV conversion. When running in your browser, this is executed via FFmpeg.wasm, a WebAssembly port of the same tool.
-i input.mkv Specifies the input file. FFmpeg reads the MKV container and demuxes its video, audio, subtitle, and any other streams so they can be individually processed and re-encoded for the FLV output.
-c:v libx264 Re-encodes the video stream to H.264 using the libx264 encoder — the only modern, widely-supported video codec that FLV can carry. This step is necessary regardless of what codec the source MKV uses.
-c:a aac Encodes the audio stream to AAC, one of only two audio codecs FLV supports (the other being MP3). AAC is preferred here because it delivers better audio quality than MP3 at equivalent bitrates.
-crf 23 Sets the Constant Rate Factor for H.264 encoding to 23, which is the libx264 default and a well-balanced quality setting. Lower values (e.g., 18) produce a higher-quality, larger FLV; higher values (e.g., 28) produce a smaller, more compressed file.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second. This is a standard quality level for AAC audio — sufficient for most speech and music content in a Flash Video context without producing an unnecessarily large file.
output.flv Defines the output filename and signals to FFmpeg that the container format should be FLV. FFmpeg infers the FLV muxer from the .flv extension and packages the H.264 video and AAC audio streams accordingly.

Common Use Cases

  • Publishing video to legacy streaming platforms or CDNs that were built around Adobe Flash Player and still ingest FLV files for transcoding pipelines
  • Uploading footage to older video management systems used in broadcast, surveillance, or enterprise environments that specifically require FLV input
  • Archiving or testing Flash-era web video workflows by converting modern MKV recordings into the FLV format those systems originally consumed
  • Preparing video content for RTMP live-streaming servers such as older Wowza or Red5 configurations that accept FLV as the ingest container
  • Converting MKV gameplay recordings or screen captures into FLV for upload to platforms or forums that predated MP4 browser support and still store content in FLV

Frequently Asked Questions

No. FLV does not support subtitles, chapters, or multiple audio tracks — these are fundamental container-level limitations, not conversion settings. Any subtitle streams (SRT, ASS, PGS, etc.) and chapter markers embedded in your MKV will be silently discarded during the conversion. If subtitle preservation is important, FLV is the wrong target format; consider MP4 with embedded subtitles instead.
FLV does not support H.265 at all. Regardless of the video codec in your source MKV — whether H.265, VP9, AV1, or anything else — the conversion will re-encode the video stream to H.264 using libx264. This re-encoding step means some generation loss is unavoidable, and processing will take longer than a simple remux would.
It depends heavily on the source codec. If your MKV contains H.265 or VP9 video, the FLV will likely be noticeably larger because H.264 is less efficient at the same visual quality level. If the source is already H.264, sizes will be similar but not identical since re-encoding introduces slight quality changes. The default CRF 23 setting targets a reasonable quality-to-size balance for H.264, but you can adjust this in the FFmpeg command if you need a smaller or higher-quality output.
Largely no. Adobe Flash Player reached end-of-life in December 2020, and modern browsers natively play MP4 and WebM without any plugin. However, FLV remains relevant in specific legacy contexts: some RTMP-based streaming servers still use it as an ingest format, older video platforms may store archived content in FLV, and certain enterprise or surveillance systems built in the 2000s–2010s still require it. If you're targeting a modern browser or device, MP4 with H.264 is a better choice.
Change the CRF value in the -crf flag. CRF controls quality for H.264 encoding: lower numbers mean higher quality and larger files, higher numbers mean more compression and smaller files. The default is 23, which is a good general-purpose setting. Use -crf 18 for near-visually-lossless quality, or -crf 28 for a smaller file with more visible compression. Valid values range from 0 (mathematically lossless) to 51 (extremely compressed).
Yes, on your local desktop you can use a shell loop. On Linux or macOS, run: for f in *.mkv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.mkv}.flv"; done. On Windows Command Prompt, use: for %f in (*.mkv) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv". The browser-based tool on this page processes one file at a time, but files up to 1GB can be converted for free directly in your browser.

Technical Notes

FLV (Flash Video) imposes strict codec constraints that make this conversion inherently a re-encoding operation rather than a remux. The video must be H.264 (libx264) or the outdated Sorenson Spark codec; audio is limited to AAC or MP3. Because MKV frequently carries VP9, H.265, or lossless audio codecs like FLAC, a full transcode is always performed here, using libx264 at CRF 23 and AAC at 128k. This introduces generation loss relative to the source. Notably, FLV's metadata support is minimal — it uses a simple onMetaData AMF event for basic properties like duration and framerate, but nothing comparable to MKV's rich metadata, tagging, or attachment features. Multiple audio tracks cannot be carried over; only the first (or default) audio track from the MKV is used. FLV also lacks a standardized mechanism for embedding timecodes or seeking indexes beyond a basic keyframe table, which can affect scrubbing behavior in older players. For files where the MKV source already contains H.264 video and AAC audio, it is technically possible to remux without re-encoding using -c copy, but FLV's packetization format differs from MKV's, so FFmpeg still needs to repackage the streams, and in practice a full encode is the safer path for broad compatibility.

Related Tools