FLV - Flash Video
FLV is the Flash Video format that carried web video for a decade. Flash Player is gone, so today FLV files are archive material waiting to be converted.
FLV is Flash Video, the format Adobe's Flash Player used to show video in a web browser. It was created by Macromedia, the company behind Flash, and passed to Adobe when Adobe bought Macromedia in 2005. For about a decade it was how video worked online: a clip watched in a browser in that period very probably arrived as an FLV. Adobe ended support for Flash Player on the last day of 2020 and browsers removed it, so nothing plays FLV in a web page any more. The files did not disappear, though. They sit in download folders and archives, and they still play in a desktop media player.
How an FLV file is put together
FLV has a strikingly simple design, because it was built to be streamed rather than stored. A short header identifies the file and says whether it contains audio, video or both. After that the file is nothing but a chain of tags, each one a small packet with a type, a timestamp and a payload. Audio tags, video tags and script tags are interleaved in time order, and a player simply reads them in sequence. There is no central index, which is why seeking in an FLV can be clumsy.
The container compresses nothing itself. Early FLV files used Sorenson Spark for video, later ones the On2 VP6 codec, and once Flash Player gained the ability, H.264 video with AAC audio, all of them lossy. Adobe eventually introduced F4V as the replacement, built on the same MP4 structure used everywhere else.
What metadata an FLV file carries
FLV metadata almost all lives in a single script tag near the start of the file, usually named onMetaData. It is a list of names and values, written in the data format Flash used for talking to scripts, and a player would read it before playback to set itself up. The entries you are most likely to see are:
- duration, width and height, and the frame rate;
- the video data rate and audio data rate, and numeric identifiers for the video and audio codecs;
- the audio sample rate, the sample size, and whether the sound is stereo;
- the file size and a flag saying whether the file can be seeked to the end;
- a list of keyframe positions and their times, which is what made seeking possible at all;
- the name of the tool that wrote or injected the metadata, since separate programs existed purely to add this block to files that lacked it.
Some files also contain a second script tag holding an XMP packet, the structured text format Adobe uses across its products, and that one can carry a title, a creator, a description and a copyright notice typed by a person.
What FLV has no concept of is camera metadata. There is no EXIF block, no camera make or model, no lens or exposure data and no GPS field. A location was never something a Flash Video file was built to record. The only traces of origin are the writing tool's name and whatever an XMP packet holds.
There is also a common gap worth knowing about. Duration and file size are written once the whole file is known, so a recording captured from a live stream frequently has them missing or set to zero. That is why some players show an FLV with no timeline and refuse to skip forward: the information a player needs was never filled in.
What to do with an FLV today
Treat FLV as an archive format, not a working one. Nothing new should be created in it, because the platform it existed for is gone.
MP4 is the replacement in every respect: it plays in browsers and on phones, it seeks properly and it holds a great deal more metadata. How you convert matters. An FLV that already contains H.264 video and AAC audio can usually be remuxed straight into an MP4, which just rewrites the wrapper and keeps the picture bit for bit. An older file using Sorenson Spark or VP6 has to be re-encoded, and that means a second round of lossy compression, so keep the original alongside the copy if the footage matters.