File types · Explainer

The FLV file (.flv)

An FLV file is a Flash Video file: the format that carried most web video in the second half of the 2000s, played by Adobe's Flash Player inside the browser. This guide explains what's inside one, what happened when Flash ended, why FLV lives on in live streaming, and how to play and convert FLV files today.

At a glance

Full name
Flash Video (Adobe Flash Video File Format)
Extensions
.flv; .f4v is a different, MP4-based Flash format
MIME type
video/x-flv (unregistered)
Kind
Binary container: a header, then a sequence of audio, video and script data tags
Owner
Macromedia, then Adobe; specification version 10.1 (2010). Enhanced FLV extensions from the Veovera Software Organization
First released
Early 2000s by Macromedia; VP6 added with Flash 8 (2005), H.264 and AAC with Flash Player 9 Update 3 (2007)
Common codecs
Video: Sorenson Spark (H.263 variant), On2 VP6, H.264; HEVC, AV1, VP9 with Enhanced FLV. Audio: MP3, AAC, Nellymoser, Speex
Opens with
VLC, mpv, FFmpeg and FFmpeg-based players. Not web browsers
Magic number
46 4C 56 01 (FLV and version 1) at byte 0

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 (structure, with key bytes in hex)
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. 146 4C 56 01

    Signature and version

    The letters FLV and 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. 205 · 00 00 00 09

    Flags and header size

    Bit 04 says there's audio and bit 01 video. The header size is always 9 in version 1; players use it to find the first tag.

  3. 300 00 00 00

    PreviousTagSize

    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. 412 00 01 37 00 00 00 00 00 00 00

    A 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. 5"onMetaData"

    The metadata tag

    A script data tag in AMF0, Flash's serialisation format: the name onMetaData and 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. 617 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. 7AF 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. 817 02 00 00 00

    End 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.

IDCodecEra and notes
Video 2Sorenson 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, 6Screen Video, Screen Video 2Codecs designed for screen recordings and screen sharing.
Video 4, 5On2 VP6, VP6 with alphaAdded with Flash 8 in 2005. Better quality than Spark; VP6 with alpha allowed transparent video.
Video 7H.264 (AVC)From Flash Player 9 Update 3 (2007). Can be moved to MP4 without re-encoding.
Audio 2MP3The usual audio for Spark and VP6 files.
Audio 10AACPaired with H.264.
Audio 4–6, 11Nellymoser, SpeexSpeech 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 .flv link 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, av01 or vp09. A file made by FFmpeg 6.1 with HEVC starts its first video tag with 90 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.flv shows 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.
terminal
# 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.mp4

HandBrake 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

SymptomUsual causeFix
No duration, or can't seekNo 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 failsThe video is Sorenson Spark or VP6, which MP4 doesn't carry in practice.Re-encode to H.264.
Sound but no pictureAn 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 syncTimestamp gaps from a live stream recording.Re-encode with FFmpeg, which regenerates the timing.
Old Flash page shows nothingFlash 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

Last reviewed 27 October 2026.