Convert M4V to SWF — Free Online Tool
Convert M4V files — Apple's iTunes-compatible MPEG-4 video container — to SWF (Shockwave Flash) by re-encoding the H.264/AAC streams into the Flash-native FLV1 video codec and MP3 audio. This is a legacy conversion useful for embedding video content in older Flash-based web environments that cannot play MPEG-4 natively.
to
FFmpeg Command
Copy this command to run the same conversion locally with FFmpeg on your desktop. Download FFmpeg
Drop your M4V 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
M4V files typically carry H.264 video and AAC audio inside an MPEG-4 container, often with Apple-specific metadata and occasionally FairPlay DRM. During this conversion, both streams must be fully re-encoded — the H.264 video is transcoded to FLV1 (Sorenson Spark), a much older and lower-efficiency Flash-native codec, and the AAC audio is transcoded to MP3 using the LAME encoder, since SWF does not natively support AAC. Any DRM-protected M4V content cannot be processed. Chapters, multiple audio tracks, and subtitle streams present in the M4V are all dropped, as the SWF container supports none of these features. The result is a self-contained SWF video file playable by Adobe Flash Player.
What Each Flag Does
| Flag | What it does |
|---|---|
ffmpeg
|
Invokes the FFmpeg command-line tool. In this browser-based tool, the equivalent FFmpeg.wasm (WebAssembly) binary runs entirely within your browser — no file data leaves your machine. |
-i input.m4v
|
Specifies the input file as an M4V — Apple's MPEG-4 video container, which FFmpeg reads by demuxing the H.264 (or H.265) video stream and AAC audio stream for subsequent re-encoding. |
-c:v flv1
|
Sets the output video codec to FLV1 (Sorenson Spark), the legacy Flash-native video codec required for SWF container compatibility. This triggers a full re-encode of the H.264 source video, which is the most computationally expensive part of this conversion. |
-c:a libmp3lame
|
Uses the LAME encoder to transcode the M4V's AAC audio track to MP3, which is the audio format natively supported within SWF. This is a lossy-to-lossy transcode since both AAC and MP3 are compressed formats. |
-q:v 5
|
Sets the FLV1 video quality on a scale of 1 (best quality, largest file) to 10 (lowest quality, smallest file). A value of 5 is a balanced default; lower values are recommended if the source M4V has high visual quality worth preserving. |
-b:a 128k
|
Sets the MP3 audio output bitrate to 128 kilobits per second, which provides reasonable stereo audio quality suitable for most video content. Increase to 192k or 256k if the source M4V contains high-fidelity or music-heavy audio. |
output.swf
|
Specifies the output filename and tells FFmpeg to write a SWF (Small Web Format / Shockwave Flash) container, which wraps the FLV1 video and MP3 audio into a self-contained Flash file playable by Adobe Flash Player. |
Common Use Cases
- Embedding iTunes-purchased or iTunes-exported video into legacy Flash-based websites or CMS platforms that predate HTML5 video support
- Preparing video content for older Adobe Flash-based e-learning systems (e.g., early versions of Adobe Captivate or Articulate) that only accept SWF or FLV input
- Archiving or migrating video assets from Apple's M4V ecosystem into a Flash-compatible format for preservation in legacy multimedia archives
- Supplying video content to Flash-based digital signage or kiosk systems that were built before HTML5 adoption and still require SWF playback
- Testing or debugging Flash Player behavior with real video content by converting a known-good M4V source into the SWF format for controlled comparison
Frequently Asked Questions
The FLV1 (Sorenson Spark) codec used in SWF is significantly less efficient than the H.264 codec typically found in M4V files. To achieve the same perceived visual quality, FLV1 requires considerably higher bitrates than H.264. At the default quality setting (-q:v 5), there will be a visible quality drop compared to the source M4V, especially in high-motion scenes or fine detail. Lowering the -q:v value (closer to 1) will improve quality at the cost of a larger file size.
No. The SWF container format does not support chapters, multiple audio tracks, or subtitle streams. Only the primary video track and a single audio track will be carried into the output SWF. If your M4V contains alternate language audio tracks or embedded subtitles, these will be silently dropped during conversion. You should select the desired audio track from the source before converting if that is a concern.
No. M4V files purchased from the iTunes Store and protected with Apple's FairPlay DRM cannot be processed by FFmpeg or any other standard transcoding tool. The conversion will fail or produce an unplayable output. Only DRM-free M4V files — such as those exported from iMovie, Final Cut Pro, or iTunes-purchased content that has been explicitly made DRM-free — can be converted using this tool.
To change video quality, modify the -q:v value: lower numbers (e.g., -q:v 1) produce higher quality and larger files, while higher numbers (e.g., -q:v 10) produce smaller files with more visible compression artifacts. For audio, replace the -b:a 128k value with a higher bitrate like 192k or 256k for better audio fidelity, or 96k to reduce file size. For example: ffmpeg -i input.m4v -c:v flv1 -c:a libmp3lame -q:v 2 -b:a 192k output.swf would give noticeably better quality at the cost of a larger SWF file.
Yes, using a shell loop. On Linux or macOS, you can run: for f in *.m4v; do ffmpeg -i "$f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "${f%.m4v}.swf"; done. On Windows Command Prompt: for %f in (*.m4v) do ffmpeg -i "%f" -c:v flv1 -c:a libmp3lame -q:v 5 -b:a 128k "%~nf.swf". The browser-based tool processes one file at a time, so the FFmpeg command is the recommended approach for batch jobs.
No. Adobe officially ended support for Flash Player on December 31, 2020, and all major browsers have removed Flash support entirely. SWF video playback requires Adobe Flash Player, which is no longer available or installable in modern browsers. This conversion is only relevant for legacy systems, offline Flash Players, standalone projectors, or archival workflows where Flash-era infrastructure is still in use.
Technical Notes
The FLV1 codec (also known as Sorenson Spark) encoded into SWF is a DCT-based codec introduced around 2002 and is technically comparable to MPEG-4 Part 2 — several generations behind the H.264 codec found in most M4V files. This means the re-encoding step is inherently lossy and generationally degrading: you are converting from an efficient modern codec to a much less efficient legacy codec, so quality loss relative to the source is unavoidable regardless of bitrate settings. The -q:v parameter in FFmpeg controls the quantizer scale for FLV1 on a 1–10 scale (unlike the CRF scale used for H.264/H.265), where 1 is highest quality and 10 is lowest. Audio is transcoded from AAC to MP3 via the LAME encoder; while both are lossy formats, this double-lossy transcode can introduce minor artifacts, particularly in complex audio. The SWF container also imposes a practical file size ceiling in some Flash Player implementations (historically around 2GB), though this is rarely a concern for typical video files. No metadata from the M4V — including iTunes-specific tags like album art, track names, or episode information — is carried over to the SWF output.