Convert MXF to FLV — Free Online Tool
Convert MXF broadcast footage to FLV for web delivery, re-encoding the video with H.264 (libx264) and audio with AAC — packaging professional production content into a Flash-compatible container. Ideal for publishing archived broadcast material or legacy streaming workflows where FLV is still required.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your MXF 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
MXF is a professional broadcast wrapper that can contain video encoded as H.264, MPEG-2, or Motion JPEG, typically paired with uncompressed or lightly compressed PCM audio. FLV only supports a limited codec set — H.264 for video and AAC or MP3 for audio — and is a lossy-only format. During this conversion, the video stream is re-encoded to H.264 using libx264 with CRF 23, which means the original MXF video (whether it was MPEG-2, MJPEG, or already H.264) is fully transcoded into a new compressed stream. The PCM audio tracks found in most broadcast MXF files are transcoded to AAC at 128k, a significant lossy compression step down from uncompressed PCM. MXF-specific metadata such as timecodes, KLV metadata, and production descriptors cannot be carried into the FLV container and will be discarded. If the MXF source contains multiple audio tracks, only the first track will be mapped to the output, as FLV does not support multiple audio streams.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg application. In the browser-based tool, this runs via FFmpeg.wasm (WebAssembly) entirely client-side; when run locally on your desktop, this calls the native FFmpeg binary for faster processing, which is recommended for large MXF broadcast files over 1GB. |
-i input.mxf
|
Specifies the input MXF file. FFmpeg will read the MXF container and detect its internal streams — typically H.264, MPEG-2, or MJPEG video alongside PCM audio tracks as used in broadcast and post-production workflows. |
-c:v libx264
|
Re-encodes the video stream using the libx264 H.264 encoder, which is the only modern video codec supported by FLV. Regardless of whether the source MXF video is MPEG-2, MJPEG, or already H.264, a full transcode is performed to produce an FLV-compatible stream. |
-c:a aac
|
Transcodes the audio from the MXF source — most commonly uncompressed PCM (pcm_s16le or pcm_s24le) as used in broadcast — to AAC, the default and most compatible lossy audio codec supported by the FLV container. |
-crf 23
|
Sets the H.264 Constant Rate Factor to 23, which is libx264's default and a good balance between visual quality and file size for web delivery. Lower values (e.g., 18) produce better quality closer to the broadcast MXF source; higher values (e.g., 28) reduce file size further at the cost of visible quality loss. |
-b:a 128k
|
Sets the AAC audio bitrate to 128 kilobits per second, the standard target for web-delivery audio. This is a significant compression step from the uncompressed PCM audio typical in broadcast MXF files, though 128k AAC is generally transparent for speech and program audio. |
output.flv
|
Defines the output filename and tells FFmpeg to write an FLV container. The .flv extension causes FFmpeg to use the FLV muxer, which enforces the container's constraints — including single audio track and H.264/AAC codec requirements — on the output. |
Common Use Cases
- Publishing archived broadcast segments or news footage to legacy web portals or CMS platforms that still require FLV input
- Delivering edited MXF sequences from a post-production timeline to a Flash-based video player used by an older intranet or e-learning system
- Preparing broadcast camera footage for upload to legacy CDN pipelines that were built around Adobe Flash streaming infrastructure
- Converting MXF rushes from a broadcast camera (e.g., XDCAM) into FLV for previewing inside older Flash-based review and approval tools
- Downscaling and repackaging MPEG-2 MXF content for bandwidth-constrained web streaming in environments where H.264 FLV is the expected delivery format
- Archiving or migrating older broadcast content libraries into FLV as a compressed web-friendly intermediate before further processing
Frequently Asked Questions
No. FLV has no support for MXF's timecode tracks, KLV metadata, or production descriptors. These are fundamental features of the MXF wrapper designed for broadcast workflows, and there is simply nowhere in the FLV container specification to store them. If timecode or metadata preservation is important, you should archive the original MXF file and treat the FLV as a delivery-only copy.
No. FLV only supports a single audio stream, so FFmpeg will default to mapping the first audio track from the MXF source. If your MXF contains separate tracks for dialogue, music, and effects (a common broadcast practice), only one will be retained. If you need a specific track, you can add '-map 0:a:1' (replacing '1' with the track index) to the command before the output filename to select a different audio stream.
PCM audio in MXF is uncompressed and lossless, so any encoding to AAC introduces lossy compression. At 128k AAC, the audio is perceptually transparent for most speech and general program audio, but trained listeners may notice subtle artifacts in music or complex soundscapes. For broadcast-quality audio preservation, you would not use FLV at all — but for web delivery purposes, 128k AAC is a widely accepted standard. You can raise this to 192k or 256k by changing '-b:a 128k' in the command.
It is fully re-encoded. FLV does not support MPEG-2 video natively — it only accepts H.264 or the older Sorenson/VP6 (FLV codec). FFmpeg will decode your MPEG-2 frames and re-encode them to H.264 using libx264 at CRF 23. This means there is generational quality loss, and the process is CPU-intensive compared to a simple remux. If your source MXF already contains H.264 video, it is still re-encoded because the container change alone requires a full transcode pipeline here.
The '-crf 23' flag controls video quality using H.264's Constant Rate Factor scale, where lower numbers mean higher quality and larger files. CRF 18 is considered near-visually lossless for most content, while CRF 28 produces noticeably smaller files at reduced quality. For example, replace '-crf 23' with '-crf 18' for higher fidelity broadcast content, or '-crf 28' if file size is the priority. You can also raise audio bitrate by changing '-b:a 128k' to '-b:a 192k' for better audio reproduction.
Yes. On Linux or macOS, you can run a shell loop: 'for f in *.mxf; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "${f%.mxf}.flv"; done'. On Windows Command Prompt, use: 'for %f in (*.mxf) do ffmpeg -i "%f" -c:v libx264 -c:a aac -crf 23 -b:a 128k "%~nf.flv"'. This is especially useful when processing large MXF libraries, and since files over 1GB are better handled by the desktop FFmpeg CLI than the browser tool, batch processing is a practical advantage of running the command locally.
Technical Notes
FLV is a legacy container format developed by Adobe and is no longer supported by modern browsers natively following the end-of-life of Adobe Flash Player in December 2020. Its codec support is narrow: video must be H.264 (or the older Sorenson Spark/VP6 codecs), and audio must be AAC or MP3. Converting from MXF — a format designed for lossless or near-lossless broadcast interchange — to FLV always involves quality reduction, since FLV is inherently a lossy delivery format. The libx264 encoder used here is the industry-standard open-source H.264 implementation and produces excellent quality at CRF 23, but broadcast MXF masters encoded in MPEG-2 at high intra-frame bitrates (e.g., IMX 50Mbps) will inevitably lose some fidelity through transcoding. MXF's support for multiple audio tracks, ancillary data, descriptive metadata (DMS), and SMPTE timecode are all dropped during this conversion. If the MXF source contains closed caption data embedded in the video stream (e.g., CEA-608), those will also be lost since FLV has no subtitle or caption support. The output FLV file size will typically be significantly smaller than the MXF source, reflecting the move from professional-grade high-bitrate encoding to web-delivery compression.