Convert FLV to M4V — Free Online Tool

Convert FLV (Flash Video) files to M4V for seamless playback on Apple devices, iTunes, and iOS. This tool re-encodes the video using H.264 (libx264) and wraps it in Apple's MPEG-4 container with faststart optimization, transforming legacy Flash content into a modern, iTunes-compatible format.

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 is a Flash-era container that typically carries H.264 or older FLV-native video alongside AAC or MP3 audio. During this conversion, the video stream is re-encoded using libx264 at CRF 23 (a perceptually transparent quality level) and the audio is encoded as AAC at 128k — matching the codec expectations of the M4V container. M4V is essentially an MPEG-4 container with Apple-specific extensions, so the output gains support for subtitles, chapters, multiple audio tracks, and DRM that FLV never supported. The '-movflags +faststart' flag relocates the MOOV atom to the beginning of the file, enabling progressive streaming before the full download completes — something FLV handled differently via its own streaming protocol (RTMP). The result is a file natively recognized by iTunes, QuickTime, and iOS devices.

What Each Flag Does

Flag What it does
ffmpeg Invokes the FFmpeg tool, which handles all demuxing, decoding, encoding, and remuxing steps needed to transform the FLV container and its streams into an M4V file.
-i input.flv Specifies the input Flash Video file. FFmpeg will detect the container as FLV and probe the contained streams — typically H.264 or FLV1 video and AAC or MP3 audio — before processing them.
-c:v libx264 Re-encodes the video stream using the libx264 H.264 encoder, which is required for M4V compatibility with Apple devices and iTunes regardless of whether the source FLV already contained H.264.
-c:a aac Encodes the audio stream as AAC using FFmpeg's native AAC encoder, which is the standard audio codec for M4V and ensures compatibility with iTunes, QuickTime, and all iOS devices.
-crf 23 Sets the Constant Rate Factor for libx264 to 23, the default visually transparent quality level. Lower values (e.g., 18) produce higher quality and larger files, which is worth considering if the source FLV was already heavily compressed.
-b:a 128k Sets the AAC audio bitrate to 128 kilobits per second, a standard quality level appropriate for most speech and general-purpose video content coming from FLV sources originally streamed at similar or lower bitrates.
-movflags +faststart Moves the MOOV atom (the file's index/metadata block) to the beginning of the M4V file, enabling progressive HTTP streaming and instant playback start — essential for web-delivered M4V and a modern replacement for the RTMP-based streaming FLV relied on.
output.m4v Specifies the output filename with the .m4v extension, signaling to Apple software that this is an iTunes-compatible MPEG-4 video file suitable for library import, device sync, and Apple TV playback.

Common Use Cases

  • Archiving old Flash-era video downloads (tutorials, webinars, purchased content) into an Apple-compatible format before Flash Player support disappeared entirely
  • Importing legacy FLV recordings from older screen-capture or lecture-capture software into iTunes or Apple TV for offline viewing on iOS devices
  • Preparing FLV video content for upload to iTunes U or Apple Podcasts, which requires M4V or MP4 containers with AAC audio
  • Converting FLV files exported from older Adobe Premiere or Flash-based workflows into M4V so they can be synced to iPhones and iPads via iTunes
  • Repurposing archived FLV livestream recordings or Flash-based e-learning videos into M4V for distribution on Apple-compatible platforms
  • Converting FLV promotional or product videos into M4V to enable chapter markers and multiple audio tracks for multilingual Apple TV app delivery

Frequently Asked Questions

FLV files using H.264 video and AAC audio are already lossy-compressed, so re-encoding them to M4V with H.264 and AAC introduces a second generation of compression loss. At the default CRF 23 and 128k audio bitrate, the quality degradation is generally imperceptible for standard web video, but artifacts from the original FLV encoding may become slightly more visible. If your source FLV was heavily compressed to begin with, consider lowering the CRF value (e.g., to 18) to preserve more detail during the transcode.
FLV was designed specifically for Adobe's Flash streaming ecosystem and has a very minimal container structure — it supports only a single video and audio stream with no provision for chapters, subtitles, or track switching. M4V, being based on the MPEG-4 Part 14 (MP4) container with Apple extensions, inherits a much richer metadata and track model. After converting to M4V, you can add chapter markers using tools like Chapter Tool or embed alternate language audio tracks using FFmpeg, which is impossible with the FLV source format.
Yes. M4V with H.264 video and AAC audio is one of the native formats for both QuickTime Player and iTunes on macOS. The '-movflags +faststart' flag used in this conversion also ensures the file streams efficiently in QuickTime without waiting for a full load. On iTunes, the file will appear under Movies or TV Shows and can be synced directly to iPhone or iPad.
FLV metadata is stored in a proprietary onMetaData event block, which is not compatible with the M4V/MPEG-4 metadata model (which uses iTunes-style atoms like 'title', 'artist', and 'comment'). The FFmpeg command as written does not explicitly map FLV metadata to M4V atoms, so title tags and similar fields may not carry over reliably. If metadata preservation is important, you can add '-map_metadata 0' to the command to attempt a best-effort transfer of any readable metadata fields.
To reduce file size, increase the CRF value — for example, changing '-crf 23' to '-crf 28' produces smaller files with slightly lower visual quality. To improve quality (at the cost of larger files), lower the CRF toward 18. For audio, change '-b:a 128k' to a higher bitrate like '-b:a 192k' for better fidelity, or '96k' to save space. For archiving FLV content you expect to re-encode later, using a CRF between 18 and 20 is a safer long-term choice.
Yes. On Linux or macOS, you can run a shell loop: 'for f in *.flv; do ffmpeg -i "$f" -c:v libx264 -c:a aac -crf 23 -b:a 128k -movflags +faststart "${f%.flv}.m4v"; 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 -movflags +faststart "%~nf.m4v"'. This processes all FLV files in the current directory and outputs a corresponding M4V file for each.

Technical Notes

FLV containers commonly encode video with either the older FLV1 (Sorenson Spark) codec or H.264 (AVC), and audio with either MP3 or AAC. This conversion always re-encodes to H.264 via libx264 regardless of the source codec, which is necessary because FLV1-encoded video has no direct path into an M4V container. The CRF (Constant Rate Factor) scale used by libx264 runs from 0 (lossless) to 51 (lowest quality), with 23 as the default sweet spot. M4V files are byte-for-byte compatible with MP4 containers — the only meaningful difference is the '.m4v' extension, which signals to iTunes and Apple software that the file may contain Apple DRM (FairPlay). Without DRM, any M4V can be renamed to .mp4 and will play identically. One important limitation: FLV does not support subtitles or embedded chapter data, so those M4V features must be added separately after conversion if needed. The '+faststart' movflags pass is particularly valuable here because it enables HTTP progressive download playback — mimicking the streaming behavior FLV achieved via RTMP, but in a universally supported, server-agnostic way.

Related Tools