Convert FLV to MTS — Free Online Tool
Convert FLV (Flash Video) files to MTS (AVCHD) format using H.264 video and AAC audio, re-encoding the stream inside an MPEG-2 Transport Stream container. This is ideal for bringing legacy web-streaming footage into a broadcast-compatible or camcorder-native format for professional editing and archiving.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your FLV file here
or click to browse
Free — no uploads, no signups. Your files never leave your browser.
Settings
Note: Browser-based encoding uses approximate quality targets. For precise CRF compression, copy the FFmpeg command above and run it on your desktop.
Estimated output:
Conversion Complete!
DownloadHow It Works
FLV is a lightweight container developed by Adobe, typically carrying H.264 or Sorenson Spark video alongside AAC or MP3 audio — optimized for low-latency web delivery via Flash Player. MTS (AVCHD) is an MPEG-2 Transport Stream container used natively by Sony and Panasonic camcorders, designed for broadcast-grade H.264 video with AC-3 or AAC audio. Because the source FLV may carry H.264 already but wrapped in an incompatible container with different stream framing, FFmpeg fully re-encodes the video using libx264 and transcodes the audio to AAC, then packages everything into the .mts Transport Stream structure. This is a full transcode — not a remux — meaning every frame is decoded and re-encoded to conform to the stricter AVCHD stream requirements.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg binary — the open-source multimedia processing engine that handles all decoding, encoding, and container remuxing. In the browser version of this tool, FFmpeg runs as a WebAssembly module (FFmpeg.wasm) without any server involvement. |
-i input.flv
|
Specifies the input file — an FLV (Flash Video) container that may contain H.264 or Sorenson Spark video and AAC or MP3 audio. FFmpeg auto-detects the container format and all internal stream properties from this file. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder, producing AVC video that conforms to what AVCHD MTS players and editors expect. This is necessary because the FLV's video stream framing is not directly compatible with the MPEG-2 Transport Stream container structure. |
-c:a aac
|
Encodes the audio stream to AAC using FFmpeg's native AAC encoder. MTS/AVCHD supports AAC natively alongside AC-3, and AAC provides good quality at the default 128k bitrate — ensuring the audio is well-formed within the Transport Stream packet structure. |
-crf 23
|
Sets the Constant Rate Factor for the libx264 video encode to 23, which is the FFmpeg default and delivers a good balance between visual quality and file size. For FLV source material that was already heavily compressed for web streaming, a lower value like 18 is recommended to avoid compounding compression artifacts. |
-b:a 128k
|
Sets the AAC audio output bitrate to 128 kilobits per second. This is appropriate for speech and general video content; if your FLV source contains high-fidelity music or professional audio, increasing this to 192k or 256k will better preserve the original audio quality in the MTS output. |
output.mts
|
Defines the output filename with the .mts extension, which causes FFmpeg to write the encoded H.264 video and AAC audio into an MPEG-2 Transport Stream container — the native file format recorded by Sony and Panasonic AVCHD camcorders and expected by AVCHD-aware editing software. |
Common Use Cases
- Importing archived Flash-era web video footage into Sony Vegas, DaVinci Resolve, or Premiere Pro projects that prefer native AVCHD MTS timelines from camcorder recordings
- Preparing FLV recordings from legacy screen-capture or webinar tools for ingest into broadcast editing workflows that require MPEG-2 Transport Stream packaging
- Converting old FLV video archives (e.g., downloaded YouTube content from pre-HTML5 era) into a durable, widely-supported container format for long-term storage alongside camcorder footage
- Merging FLV footage from Flash-based streaming platforms with MTS clips recorded on AVCHD camcorders so all source files share the same container format in an NLE bin
- Re-packaging FLV training or lecture videos into MTS format for playback on Blu-ray-compatible devices or set-top players that support AVCHD disc structures
- Producing a broadcast-safe H.264/AAC stream in a Transport Stream wrapper from FLV source material for use in IPTV or professional playout systems
Frequently Asked Questions
Yes, this conversion involves a full re-encode of both the video and audio streams, so some generation loss is inevitable. The default CRF value of 23 with libx264 produces visually good quality for most content, but if your source FLV was already heavily compressed (as many web-streaming FLVs were), artifacts from the original encode may become more visible. For archival purposes, lowering the CRF value to 18 or below will minimize additional quality degradation at the cost of a larger output file.
Even when an FLV file contains H.264 video and AAC audio — the same codecs used in AVCHD MTS — the stream framing, NAL unit structure, and timing metadata differ enough between the FLV container and the MPEG-2 Transport Stream that a clean remux is rarely possible without corrupted output. The AVCHD specification also imposes constraints on profile levels, frame rates, and bitrate that FLV streams may not conform to. A full transcode via libx264 ensures the output is a well-formed, spec-compliant MTS stream.
FLV does not support multiple audio tracks or subtitle streams, so your source file will only ever contain a single audio track and no subtitle data. The MTS format itself does support multiple audio tracks and subtitles, but since nothing in the FLV source provides that data, the output MTS will contain one video stream and one AAC audio track. If you need to add additional audio tracks or subtitle streams to the MTS file, that would require a separate FFmpeg operation after this conversion.
To adjust video quality, change the -crf value: lower numbers (e.g., -crf 18) mean higher quality and larger file sizes, while higher numbers (e.g., -crf 28) mean smaller files with more compression. The range is 0 (lossless) to 51 (worst). To adjust audio bitrate, change the -b:a value — for example, replace 128k with 192k or 256k for higher-fidelity audio, which is especially worthwhile if your FLV source contains music or high-quality speech. A typical high-quality command would be: ffmpeg -i input.flv -c:v libx264 -c:a aac -crf 18 -b:a 192k output.mts
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}.mts"; 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.mts". This preserves the original filename while changing the extension, and processes all FLV files in the current directory sequentially.
The output MTS file will use the correct H.264/AAC codec pairing inside an MPEG-2 Transport Stream, which is structurally similar to AVCHD recordings. Most NLE software (Sony Vegas, Final Cut Pro, Premiere Pro) will recognize and import it correctly. However, strict AVCHD compliance for playback on hardware camcorder decks or Blu-ray players may require specific resolution (e.g., 1920x1080 or 1280x720) and bitrate constraints that this general-purpose conversion does not enforce. For hardware device compatibility, you may need to add -s 1920x1080 and -b:v flags to match the exact AVCHD profile your device expects.
Technical Notes
FLV files from the Flash era commonly encode video with either H.264 (AVC) or the older Sorenson Spark (FLV1) codec, and audio with either AAC or MP3. This tool's FFmpeg command unconditionally re-encodes to libx264 + AAC regardless of the source codecs, which ensures the output is always a valid, well-formed MTS file but means that even a high-quality FLV source will undergo a transcode cycle. The MPEG-2 Transport Stream container (.mts) is inherently designed for streaming and broadcast — it includes error recovery packets and a fixed 188-byte packet structure — making MTS files slightly larger than equivalent MP4 files for the same encoded content. FLV metadata such as creation timestamps, title tags, and embedded cue points will not be carried over into the MTS output, as neither the Flash metadata schema nor MTS AVCHD metadata structures have a direct mapping in standard FFmpeg conversion. Chapters and transparency are unsupported in both formats. If your FLV source was encoded at non-standard frame rates (e.g., variable frame rate from screen recorders), the re-encode via libx264 will process the stream but you may want to add -r 30 to force a constant frame rate for maximum compatibility with AVCHD-consuming software.