The basics
What is an FLV file?
FLV is the video format of Flash Player, the browser plug-in from Macromedia, later Adobe. In the late 2000s it was how most video reached the web: video sites, news sites and embedded players all used a Flash player that streamed or downloaded .flv files. Its main attraction was that Flash Player was installed on nearly every desktop computer, at a time when browsers had no built-in video support.
The format is a simple container: a header and a stream of tagged chunks of audio, video and metadata, each with its own timestamp. That made it easy to write in real time and to stream, and it's closely tied to RTMP, Flash's streaming protocol, which sends the same audio, video and data messages as an FLV file holds.
In short
FLV files from the Flash era are now an archive format: browsers can't play them, but VLC and FFmpeg can, and converting to MP4 is usually quick. The FLV structure itself is still in daily use behind the scenes, in RTMP live streaming.
Anatomy
What's inside an FLV file
An FLV file is very simple: a 9-byte header, then a chain of tags. Each tag has an 11-byte header (type, data size, timestamp, stream ID) and its data, and each is followed by a 4-byte field giving the size of the tag just written, so the file can be read backwards too. All numbers are big-endian. Here is the start and end of a 1-second FLV we made for this page with FFmpeg. It isn't offered for download.
tiny.flv: 1 second, 320×240 H.264 + AAC stereo
offset bytes part
0 46 4C 56 signature "FLV"
3 01 version 1
4 05 flags: audio (04) + video (01)
5 00 00 00 09 header size: 9 bytes
9 00 00 00 00 PreviousTagSize0, always 0
13 12 00 01 37 00 00 00 00 00 00 00 tag: type 18 (script data), 311 bytes
24 02 00 0A "onMetaData" 08 … duration 1.08, width 320, height 240,
framerate 25, videocodecid 7,
audiocodecid 10, filesize 45,790 …
335 00 00 01 42 PreviousTagSize: 322 (11 + 311)
339 09 00 00 33 00 00 00 00 00 00 00 tag: type 9 (video), 51 bytes, 0 ms
350 17 00 00 00 00 01 64 00 0D … keyframe, AVC, sequence header
405 08 00 00 07 00 00 00 00 00 00 00 tag: type 8 (audio), 7 bytes, 0 ms
416 AF 00 12 10 56 E5 00 AAC, sequence header
427 09 00 14 0E 00 00 00 00 00 00 00 video, 5,134 bytes, 0 ms
438 17 01 00 00 50 … keyframe, AVC frame, show at +80 ms
5576 09 00 09 BA 00 00 28 00 00 00 00 video, 2,490 bytes, 40 ms
5587 27 01 00 00 C8 … inter frame, show at +200 ms
8081 08 00 00 87 00 00 39 00 00 00 00 audio, 135 bytes, 57 ms
8092 AF 01 … AAC frame
… 74 tags: 1 script, 27 video, 46 audio
45770 09 00 00 05 00 03 C0 00 00 00 00 video, 5 bytes, 960 ms
45781 17 02 00 00 00 AVC end of sequence
45786 00 00 00 10 last PreviousTagSize: 16
45790 end of file- 1
46 4C 56 01Signature and version
The letters
FLVand version 1, the only version there has ever been. Even Enhanced FLV, which adds new codecs, keeps version 1 and signals its extensions inside the tags. - 2
05 · 00 00 00 09Flags and header size
Bit
04says there's audio and bit01video. The header size is always 9 in version 1; players use it to find the first tag. - 3
00 00 00 00PreviousTagSize
After the header and after every tag comes the size of the previous tag, including its 11-byte header. The first one is 0, because there's no previous tag.
- 4
12 00 01 37 00 00 00 00 00 00 00A tag header
Tag type (8 audio, 9 video, 18 script data), a 3-byte data size (311 here), a 3-byte timestamp in milliseconds plus a fourth byte that extends it, and a 3-byte stream ID that's always 0. Timestamps are per tag, so audio and video can interleave freely.
- 5
"onMetaData"The metadata tag
A script data tag in AMF0, Flash's serialisation format: the name
onMetaDataand a list of properties such as duration, width, height, frame rate and codec IDs. Players read it to show the length and set up decoders. Tools such as FLVTool2 and yamdi added a list of keyframe positions here, so Flash players could seek. - 6
17 00 … · 17 01 …A video tag
The first byte holds the frame type (high 4 bits: 1 keyframe, 2 inter frame) and the codec ID (low 4 bits: 2 Sorenson Spark, 4 VP6, 7 AVC/H.264). For H.264, the next byte says whether the tag holds the decoder configuration (0), frames (1) or the end of the sequence (2), followed by a composition time offset for B-frames.
- 7
AF 00 … · AF 01 …An audio tag
One byte: the format in the high 4 bits (
A= 10, AAC; 2 would be MP3), then the sample rate, sample size and mono or stereo. For AAC, the next byte separates the decoder configuration (0) from audio frames (1). - 8
17 02 00 00 00End of sequence
FFmpeg ends the H.264 stream with an end-of-sequence tag. There's no index or trailer: the last PreviousTagSize is the end of the file, which is why an FLV recording that was cut off still plays up to the point it stopped.
Codecs
Codecs in FLV files: Sorenson Spark, VP6 and H.264
Each video tag names its codec with a number, and each audio tag with a format number. Knowing the common ones tells you how old a file is and whether it can be remuxed or must be re-encoded.
| ID | Codec | Era and notes |
|---|---|---|
| Video 2 | Sorenson Spark (a variant of H.263) | The first Flash video codec. Low quality by today's standards; must be re-encoded for any modern use. |
| Video 3, 6 | Screen Video, Screen Video 2 | Codecs designed for screen recordings and screen sharing. |
| Video 4, 5 | On2 VP6, VP6 with alpha | Added with Flash 8 in 2005. Better quality than Spark; VP6 with alpha allowed transparent video. |
| Video 7 | H.264 (AVC) | From Flash Player 9 Update 3 (2007). Can be moved to MP4 without re-encoding. |
| Audio 2 | MP3 | The usual audio for Spark and VP6 files. |
| Audio 10 | AAC | Paired with H.264. |
| Audio 4–6, 11 | Nellymoser, Speex | Speech codecs used for microphone input in Flash apps and early video chat. |
Adobe's specification also defines F4V, a Flash format based on the ISO base media file format (like MP4) for H.264 and AAC. Despite the similar name, an .f4v file has nothing in common with FLV's tag structure.
History
The end of Flash Player
As browsers gained the HTML5 <video> element and phones arrived that never ran Flash, sites moved to MP4 and WebM. Adobe announced in 2017 that it would stop supporting Flash Player, and it did: Adobe stopped supporting Flash Player from 31 December 2020 and blocked Flash content from running in Flash Player from 12 January 2021. Browsers removed the plug-in around the same time.
- No browser plays FLV. It was never a browser format: Flash Player did the playing. Opening an
.flvlink downloads the file. - Old Flash sites are broken. Pages that played FLV through a Flash player now show nothing. The videos themselves are fine: convert them to MP4 and use a
<video>element. - Don't install old Flash Player builds. Unofficial copies are a common malware lure, and genuine old versions have unpatched security holes.
Live streaming
RTMP and Enhanced FLV: FLV's second life
Flash Player is gone, but its streaming protocol isn't. RTMP remains a common way to send a live stream from an encoder such as OBS Studio to a streaming service, which then repackages it for viewers. RTMP messages carry exactly the payloads of FLV tags, and tools often record or relay a stream as an FLV file.
Classic FLV stops at H.264 and AAC. To carry newer codecs, the not-for-profit Veovera Software Organization, with Adobe, YouTube, Twitch and others, published Enhanced RTMP in 2023, which extends RTMP and FLV together:
- Version 1 added HEVC, AV1 and VP9 video and HDR metadata. OBS and YouTube shipped HEVC and AV1 streaming over RTMP in April 2023.
- How it's signalled: in the first byte of a video tag, the top bit marks an extended header. The remaining bits then hold the frame type and a packet type, and a FourCC follows:
hvc1,av01orvp09. A file made by FFmpeg 6.1 with HEVC starts its first video tag with90 68 76 63 31: extended header, keyframe, sequence start,hvc1. - Version 2 adds audio FourCCs (Opus, FLAC, AC-3, E-AC-3 and others), more video codecs, multiple audio and video tracks, and a reconnect request for servers.
Old readers, new files
Enhanced FLV keeps the header and version 1, so older software opens the file but doesn't recognise the extended video tags. If an FLV recorded from a recent encoder shows sound but no picture in an old tool, it probably contains HEVC or AV1 in Enhanced FLV.
How to
How to play and convert an FLV file
- Play it: VLC and mpv on Windows, macOS, Linux, Android and iOS play every common FLV codec.
- Inspect it:
ffprobe in.flvshows the codecs. It tells you whether a remux is enough. - Edit it: convert first. Most current editors don't import FLV, and none handle Sorenson Spark or VP6.
# H.264 + AAC inside? Remux to MP4, no quality loss
ffmpeg -i in.flv -c copy -movflags +faststart out.mp4
# Sorenson Spark, VP6 or MP3 inside? Re-encode
ffmpeg -i in.flv -c:v libx264 -crf 20 -pix_fmt yuv420p -c:a aac -movflags +faststart out.mp4HandBrake converts FLV files too, if you'd rather use an app. For an archive of old Flash videos, keep the originals: re-encoding a low-bit-rate Spark or VP6 file loses a little more quality, and the originals may matter for preservation.
Troubleshooting
Common FLV problems
| Symptom | Usual cause | Fix |
|---|---|---|
| No duration, or can't seek | No onMetaData, or no keyframe list in it. Live recordings often lack both. | Remux with FFmpeg (-c copy), which rewrites the metadata, or convert to MP4. |
| Remux to MP4 fails | The video is Sorenson Spark or VP6, which MP4 doesn't carry in practice. | Re-encode to H.264. |
| Sound but no picture | An old tool reading an Enhanced FLV with HEVC or AV1, or a missing VP6 decoder. | Use a current VLC or FFmpeg. |
| Audio drifts out of sync | Timestamp gaps from a live stream recording. | Re-encode with FFmpeg, which regenerates the timing. |
| Old Flash page shows nothing | Flash Player has been blocked since January 2021. | Convert the videos to MP4 and replace the player with <video>. |
Security
Is an FLV file safe?
- The file is data. An FLV holds audio, video and metadata; it can't run code. Flash Player's security problems came from SWF files, Flash's interactive content format, not from FLV video.
- Fake "Flash" downloads. Any site that says you need to install Flash Player, or an "FLV codec", to watch something is a malware risk. Use VLC instead.
- Decoder bugs. A crafted file could exploit a flaw in a decoder, and the old codecs in FLV files get little attention. Keep players and FFmpeg updated, especially on servers that process uploads.
Sample files
There are no sample FLV files on this page. To make one for testing, run ffmpeg -f lavfi -i testsrc2=duration=5:size=640x360:rate=30 -f lavfi -i sine=frequency=440:duration=5 -c:v libx264 -pix_fmt yuv420p -c:a aac test.flv, or use -c:v flv1 -c:a libmp3lame -ar 44100 for a classic Sorenson Spark file.
Put it online
Have an FLV file? Give it a link.
Drop an FLV on 99helpers and it gets its own address to send instead of an attachment. Browsers can't play Flash Video, so visitors download it; convert it to MP4 first if it should play in the browser.
Questions
FLV files, frequently asked
What is an FLV file?
A Flash Video file: the format Adobe Flash Player used for web video in the 2000s. It holds video (Sorenson Spark, VP6 or H.264) and audio (usually MP3 or AAC) in a simple tag-based container.
How do I play an FLV file?
Use VLC or mpv, on any computer or phone. Browsers can't play FLV: they relied on the Flash Player plug-in, which Adobe blocked from January 2021.
How do I convert FLV to MP4?
If it holds H.264 and AAC, remux without quality loss: ffmpeg -i in.flv -c copy out.mp4. Otherwise re-encode with HandBrake or ffmpeg -i in.flv -c:v libx264 -crf 20 -c:a aac out.mp4.
Is FLV still used?
As a file format for sharing, hardly. The FLV structure lives on in RTMP live streaming, and Enhanced RTMP/FLV (from 2023) adds HEVC, AV1 and VP9 to it.
When did Flash Player end?
Adobe stopped supporting Flash Player from 31 December 2020 and blocked Flash content from running in it from 12 January 2021.
What's the difference between FLV and F4V?
FLV is Flash's own tag-based container. F4V, added in 2007, is based on the ISO base media file format like MP4 and holds H.264 and AAC.
What's the difference between FLV and SWF?
FLV is video only. SWF was Flash's format for interactive content: animations, games and apps, including the players that streamed FLV videos.
Related formats
Other file types explained
Keep going
Related
Sources
- Adobe Flash Video File Format Specification, Version 10.1
- Library of Congress: Macromedia Flash FLV Video File Format
- Adobe: Flash Player end of life
- Veovera: Enhanced RTMP v1
- Veovera: Enhanced RTMP v2
- Veovera: Introducing Enhanced RTMP
Last reviewed 27 October 2026.