Flash Video-container (.flv)
Adobe StandaardFlash Video (FLV) is een containerformaat dat is ontwikkeld door Macromedia en Adobe om gesynchroniseerde video en audio op het web aan te bieden via de Adobe Flash Player-browserplug-in.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen FLV-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen FLV-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
46 4C 56 01ASCII-WEERGAVE: FLV
Standaardisatie: Adobe Systems Flash Video File Format Specification
Technische specificaties
| Containerarchitectuur | Streamingcontainer op basis van tags, met verweven audio-, video- en scriptdatatags |
| Compressie | Sorenson Spark-, VP6- of H.264-video met MP3- of AAC-audio |
| Bytevolgorde (endianness) | Big-Endian bit- en bytevolgorde |
| Kleurruimten | YUV 4:2:0 |
| Kanalen en structuur | Mono- en stereoaudio met videostream |
| Maximale afmetingen | Meestal tot 1080p |
| Transparantie | Alfakanaaltransparantie ondersteund in VP6-videostreams |
| Streaming en progressief | Ingebouwde ondersteuning voor livestreaming via RTMP (Real-Time Messaging Protocol) |
Technische vergelijkingsmatrix: FLV versus concurrenten
| Technisch kenmerk | FLV (Huidig) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Browserondersteuning vandaag | 0% (volledig verwijderd uit alle moderne browsers) | Ondersteund door veel huidige browsers; beschikbaarheid verschilt per versie en platform | Ondersteund door veel huidige browsers; beschikbaarheid verschilt per versie en platform | Vereist een desktopmediaspeler |
| Standaardisatie | Eigen specificatie van Adobe | Internationale open standaard van ISO/IEC | Open standaard van W3C / WebM | Opensourcestandaard van Matroska |
| Afspelen op mobiele apparaten | Niet standaard ondersteund op iOS en moderne Android-apparaten | Native hardware-ondersteuning | Native hardware-ondersteuning | Ondersteund via VLC of apps van derden |
| Alfatransparantie | Ondersteund via de On2 VP6-codec | Beperkt (vereist canvas of WebCodecs) | Native ondersteuning voor alfakanaal (VP9) | Ondersteund in VP9- of ProRes-streams |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Gedownloade FLV-video toont de totale duur als 'onbekend' en kan niet worden doorgespoeld.
Oorzaak: Ontbrekende 'onMetaData'-scripttag met tabellen met tijdstempels van keyframes en bestandsgrootte.
Herstel: Voeg ontbrekende keyframetabellen toe met 'yamdi' (Yet Another MetaData Injector) of converteer het bestand naar MP4 met File2File.app.
Beveiligingsanalyse en aanvalsvectoren voor parsers
De Flash Player-plug-in was historisch gezien een van de meest uitgebuite softwarecomponenten in de computergeschiedenis, door fouten in het geheugenbeheer bij het verwerken van ActionScript en FLV.
Bekende aanvalsvectoren
- Use-after-free en heap-overloop in de ActionScript 3-engine voor het verwerken van FLV (bijv. CVE-2015-5122).
- Onjuist opgemaakte AMF0- of AMF3-metadatapakketten kunnen geheugenbeschadiging veroorzaken in kwetsbare parsers.
- Bufferoverloop in verouderde decompressieroutines voor Sorenson Spark.
Aanbevolen beveiligingspraktijken: Gebruik nooit de Flash Player-plug-in. Converteer gearchiveerde FLV-bestanden rechtstreeks naar MP4 met FFmpeg in een sandbox.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Historische pionier van alomtegenwoordige online video: maakte het afspelen van webvideo mogelijk zonder zelfstandige mediaspelers voor desktopcomputers.
- Ondersteunde alfatransparantie in videostreams met de On2 VP6-codec.
- Weinig pakketoverhead, geoptimaliseerd voor RTMP-live-uitzendingen met lage latentie.
Technische beperkingen
- Volledig verouderd en niet ondersteund in alle moderne webbrowsers sinds het einde van Flash Player.
- Vereist hercodering of containerwijziging naar MP4 voor afspelen op iOS, Android en smart-tv's.
- Mist moderne containerfuncties zoals meerdere audiotracks en adaptieve streaming met variabele bitrate.
Interessante technische weetjes
- De eerste video die ooit op YouTube werd geüpload ('Me at the zoo' in april 2005) werd gecodeerd en geleverd als een FLV-bestand.
- De bestandshandtekening (magic bytes) '46 4C 56 01' van Flash Video spelt in ASCII 'FLV', gevolgd door containerversie 1.
- Steve Jobs publiceerde zijn beroemde open brief 'Thoughts on Flash' in 2010, wat de overgang van de industrie van FLV naar HTML5 MP4 versnelde.
Veelgestelde technische vragen
Waarom kan ik geen FLV-bestanden meer afspelen op mijn computer?
Adobe en alle grote webbrowsers hebben Flash Player in december 2020 officieel beëindigd vanwege beveiligingsproblemen. Gebruik VLC media player of converteer de bestanden naar MP4 om FLV-bestanden nu af te spelen.
Kan ik FLV naar MP4 converteren zonder kwaliteitsverlies?
Als een FLV-bestand H.264-video en AAC-audio bevat, kan een compatibele remux die streams zonder hercodering in een MP4-container plaatsen. De verwerkingstijd hangt af van de bestandsgrootte en het apparaat.
Welke codecs gebruikten FLV-video's oorspronkelijk?
Vroege FLV-bestanden gebruikten Sorenson Spark (een variant van H.263) en later On2 VP6, voordat Adobe in 2007 ondersteuning toevoegde voor de standaard H.264.