How to Convert FLV to MP4 — Rescue Your Flash-Era Videos

Adobe Flash Player was officially killed on December 31, 2020. Every browser removed Flash support in January 2021. If you have FLV files — Flash Video — they will not play in any modern browser, on any phone, or on most media players. The era of Flash video is over.

The good news: the video inside most FLV files is perfectly fine. YouTube switched to H.264 inside FLV containers around 2008. Most FLV files you'll encounter are just H.264 video in an outdated wrapper. Converting is an instant remux — copy the video out of the FLV box and into an MP4 box. Zero quality loss, zero re-encoding.

Convert FLV to MP4 — Free, No Upload

Browser-based FLV to MP4 converter. Your files never leave your device.

Why FLV Files Stop Playing — What's Really Happening

Flash Player's death wasn't a gradual fade. Adobe set a hard date — December 31, 2020 — and every major browser followed through in January 2021. Chrome, Firefox, Edge, and Safari all removed Flash plugin support within weeks of each other. There was no grace period, no fallback mode. If a page relied on Flash to play video, it just broke.

What makes this particularly frustrating is that the actual video content is completely intact. The FLV file on your hard drive isn't corrupted or degraded. It's just wrapped in a container that nothing modern will open. Think of it like a perfectly good cassette tape in a world where every tape deck was thrown away on the same day.

FLV files still turn up in some specific places that often surprise people. Older surveillance and security DVR systems — particularly units manufactured between 2008 and 2016 — export footage in FLV. If you've ever tried to review old security camera recordings and found files you can't open, that's why. Streaming archives are another common source: sites that ripped YouTube or Twitch content before those platforms moved to different formats often saved files in FLV. Corporate training libraries, archived webinar recordings, and old e-learning platforms are similarly full of them.

The converter pages and plugins that used to handle FLV playback directly in browsers are gone too. VLC still plays FLV, which is how many people realize their files are actually fine — the problem is the container, not the content.

What's Inside Your FLV File

FLV (Flash Video) is a container format. The video codec inside has changed over FLV's history:

EraVideo CodecConversionQuality
2005–2008 (early YouTube)Sorenson Spark (H.263)Re-encode requiredOne generation loss
2006–2010VP6 (On2 Technologies)Re-encode requiredOne generation loss
2008–2020 (most FLV)H.264 (AVC)Instant remuxZero quality loss

Check your file: ffprobe input.flv — look for h264, vp6, or flv1 in the video stream section.

Method 1: FFmpeg — Instant Remux

1
FFmpeg Stream Copy (H.264 FLV files)
Command Line
# For modern FLV with H.264 inside — instant, lossless
ffmpeg -i input.flv -c:v copy -c:a copy output.mp4

# If audio is MP3 (some FLV use MP3, not compatible in all MP4 players)
ffmpeg -i input.flv -c:v copy -c:a aac -b:a 192k output.mp4

# For old FLV with VP6 or Sorenson — must re-encode
ffmpeg -i input.flv -c:v libx264 -crf 18 -preset slow -c:a aac -b:a 192k output.mp4

# Fix audio sync issues (adds -async flag)
ffmpeg -i input.flv -async 1 -c:v copy -c:a aac -b:a 192k output.mp4

# Batch convert all FLV files
for f in *.flv; do ffmpeg -i "$f" -c:v copy -c:a aac "${f%.flv}.mp4"; done

Method 2: Convertlo Browser Tool

2
Convertlo — No Install, Private
Browser
  1. Open convertlo.pro/flv-to-mp4.html.
  2. Drop your FLV file or click Browse.
  3. Wait for conversion (instant for H.264 FLV, slower for VP6/Sorenson).
  4. Download the MP4.

All processing runs in your browser via FFmpeg.wasm. No upload to any server.

Recovering Large Flash Video Archives

If you have hundreds of FLV files — old website video libraries, screen capture archives, downloaded lecture videos — batch conversion is the right approach. The FFmpeg loop above handles this. For very large archives:

  • Run ffprobe -v error -select_streams v:0 -show_entries stream=codec_name -of default=noprint_wrappers=1 input.flv on a sample file first to confirm the codec
  • If H.264: expect ~30 seconds per GB converted (stream copy is near-instant)
  • If VP6/Sorenson: expect 5–15 minutes per hour of video for H.264 re-encode
  • Use -preset veryfast to maximize throughput at the cost of slightly larger files

Quality Expectations: What Survives the Conversion

The answer depends almost entirely on which codec is inside your FLV. Run ffprobe input.flv before you do anything else — it tells you everything you need to know in about two seconds.

If you see h264 in the video stream output, you're in the best possible situation. The H.264 data gets copied byte-for-byte into the MP4 container. Nothing is decoded, nothing is re-encoded. The output MP4 is mathematically identical to the video that was inside the FLV. Bitrate, resolution, grain, compression artifacts — everything carries over exactly. The only thing that changes is the wrapper.

VP6 and Sorenson Spark (also called flv1 in ffprobe output) are a different story. Both require a full transcode to H.264. That means your video goes through a decode-then-encode cycle, which introduces one generation of lossy compression. How visible that is depends on the source quality. A VP6 FLV at 800kbps being re-encoded at CRF 18 will look very close to the original — the quality headroom is there. A heavily compressed 200kbps Sorenson Spark file from 2006 won't have much to preserve regardless of what encoding settings you use.

The practical rule: use CRF 18 for archival re-encodes, CRF 23 if you just need something watchable and want smaller files. Lower CRF numbers mean higher quality and larger files. CRF 18 is generally considered visually lossless for typical content.

Audio quality follows a similar pattern. FLV files from the H.264 era almost always carry AAC audio, which copies cleanly into MP4. Older files often use MP3 audio inside the FLV container, which is technically valid in MP4 but causes playback compatibility issues on some devices — re-encoding to AAC at 192k is the safer move and costs almost nothing in quality. The unusual cases — Nellymoser or Speex audio codecs — need transcoding and can cause silent audio if a converter doesn't support them. More on that in the FAQ below.

Frequently Asked Questions

Is FLV to MP4 conversion lossless?
Yes, for FLV files containing H.264 video (most from 2008 onward). Stream copy remuxes without re-encoding — zero quality loss. Older FLV files using VP6 or Sorenson Spark require re-encoding, introducing one generation of quality loss.
Why can't I play FLV files anymore?
Adobe Flash Player was killed December 31, 2020. All browsers removed Flash support in early 2021. FLV is the Flash Video format — it's tied to Flash Player. Modern browsers, phones, and media players don't support it.
What codec is inside most FLV files?
FLV files use Sorenson Spark (H.263, early YouTube 2005–2008), VP6 (2006–2010), or H.264 (2008–2020, most modern FLV). Run ffprobe input.flv to check yours.
Can I convert FLV to MP4 without losing audio sync?
Yes. FFmpeg handles FLV timestamps correctly. If you encounter sync issues, add -async 1 to the command, which corrects minor audio-video timestamp drift that some old FLV files have.
How do I batch convert hundreds of FLV files to MP4?
Use: for f in *.flv; do ffmpeg -i "$f" -c:v copy -c:a aac "${f%.flv}.mp4"; done. This remuxes each file instantly (if H.264 inside). On Windows use a .bat file with a similar for loop.
My FLV file has no sound after converting to MP4 — why?
The most common cause is an obscure audio codec inside the FLV. Most FLV files use MP3 or AAC audio, which every converter handles fine. But some older FLV files — especially those from Flash-based voice chat apps, old webcam recordings, or certain streaming tools — use Nellymoser or Speex audio codecs. These are Flash-specific formats that most conversion tools (and even some FFmpeg builds) don't support. The converter silently drops the audio track rather than fail. The fix: run ffprobe input.flv to check the audio codec name. If you see nellymoser or speex, you need FFmpeg compiled with those decoders enabled. Try: ffmpeg -i input.flv -c:v copy -c:a libmp3lame -b:a 192k output.mp4 and check whether audio comes through.
Can I convert FLV to MP4 on a phone?
Most dedicated video converter apps on Android and iOS handle common formats well but FLV support is hit-or-miss. The issue is that FLV requires specific codec support at the OS level, and neither iOS nor Android includes native FLV decoding. Apps that claim to handle FLV are often bundling their own codec libraries, with inconsistent results — especially for older VP6 or Sorenson files. Browser-based converters like Convertlo sidestep this entirely because the conversion runs via FFmpeg.wasm inside the browser. There's no dependency on the phone's native codec support. Any phone with a modern browser can use it — just open the page, drop the file, and download the MP4.