Wideo Flash (.flv)
Specyfikacja StandardowyFlash Video (FLV) to format kontenera opracowany przez firmy Macromedia oraz Adobe w celu dostarczania zsynchronizowanego wideo i audio w sieci Web za pośrednictwem wtyczki przeglądarki Adobe Flash Player.
Inspekcja i metadane
Systemy operacyjne i analizatory plików identyfikują pliki FLV, sprawdzając początkową sekwencję bajtów binarnych:
Podpis nagłówka na poziomie bajtów (Magic Bytes)
Systemy operacyjne i analizatory plików identyfikują pliki FLV, sprawdzając początkową sekwencję bajtów binarnych:
PODPIS HEX (OFFSET 0):
46 4C 56 01REPREZENTACJA ASCII: FLV
Normalizacja: Specyfikacja formatu pliku Flash Video Adobe Systems
Specyfikacja techniczna
| Architektura kontenera | Strumieniowy kontener oparty na znacznikach z przeplatanymi znacznikami audio, wideo i danych skryptowych |
| Kompresja | Kompresja wideo Sorenson Spark, VP6 lub H.264 z dźwiękiem MP3 lub AAC |
| Kolejność bajtów (Endianness) | Kolejność bitów i bajtów typu Big-Endian |
| Przestrzenie kolorów | YUV 4:2:0 |
| Kanały i struktura | Dźwięk mono i stereo ze strumieniem wideo |
| Maks. wymiary | Zazwyczaj do rozdzielczości 1080p |
| Przezroczystość | Obsługa przezroczystości kanału alfa w strumieniach wideo VP6 |
| Streaming i progresywne ładowanie | Natywna obsługa transmisji strumieniowej na żywo RTMP (Real-Time Messaging Protocol) |
Techniczna macierz porównawcza: FLV a konkurencja
| Atrybut techniczny | FLV (Bieżący) | MP4 | WEBM | MKV |
|---|---|---|---|---|
| Obsługa przez przeglądarce dzisiaj | 0% (Całkowicie usunięta ze wszystkich nowoczesnych przeglądarek) | 100% uniwersalna we wszystkich przeglądarkach | 100% obsługiwane w nowoczesnych przeglądarkach | Wymaga stacjonarnego odtwarzacza multimedialnego |
| Standaryzacja | Własnościowa specyfikacja firmy Adobe | Międzynarodowy standard otwarty ISO/IEC | Standard otwarty W3C / WebM | Otwartoźródłowy standard Matroska |
| Odtwarzanie na urządzeniach mobilnych | Brak natywnej obsługi w systemie iOS i nowoczesnym Androidzie | Natywna obsługa sprzętowa | Natywna obsługa sprzętowa | Obsługiwane przez VLC / aplikacje firm trzecich |
| Przezroczystość alfa | Obsługiwana za pomocą kodera-dekodera On2 VP6 | Ograniczona (wymaga elementu canvas lub WebCodecs) | Natywna obsługa kanału alfa (VP9) | Obsługiwana w strumieniach VP9/ProRes |
Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego
Pobrane wideo FLV pokazuje całkowity czas trwania jako 'nieznany' i nie można go przewijać.
Główna przyczyna: Brak znacznika skryptowego 'onMetaData' zawierającego tablice znaczników czasu klatek kluczowych oraz rozmiaru pliku.
Odzyskiwanie: Wstrzyknij brakujące tablice klatek kluczowych za pomocą narzędzia 'yamdi' (Yet Another MetaData Injector) lub przekonwertuj do formatu MP4 za pomocą File2File.
Analiza bezpieczeństwa i wektory ataku na parser
Wtyczka Flash Player była w przeszłości jednym z najbardziej atakowanych komponentów oprogramowania w historii informatyki ze względu na błędy uszkodzenia pamięci w środowisku ActionScript oraz podczas parsowania plików FLV.
Znane wektory ataku
- Użycie po zwolnieniu (use-after-free) oraz przepełnienie sterty w silniku parsowania plików FLV ActionScript 3 (np. CVE-2015-5122).
- Przygotowane pakiety metadanych AMF0/AMF3 wywołujące dowolne wykonanie kodu w pamięci.
- Przepełnienia bufora w przestarzałych procedurach dekompresji Sorenson Spark.
Najlepsze praktyki obronne: Nigdy nie uruchamiaj natywnych wtyczek Flash Player. Konwertuj zarchiwizowane pliki FLV bezpośrednio do formatu MP4 za pomocą odizolowanego narzędzia FFmpeg.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Historyczny pionier wszechobecnego wideo w Internecie: umożliwiał odtwarzanie wideo w przeglądarce bez konieczności używania oddzielnych odtwarzaczy stacjonarnych.
- Obsługiwał przezroczystość alfa w strumieniach wideo przy użyciu kodera-dekodera On2 VP6.
- Niski narzut pakietów zoptymalizowany pod kątem transmisji strumieniowej wideo na żywo o niskim opóźnieniu w protokole RTMP.
Ograniczenia techniczne i wady
- Całkowicie przestarzały i nieobsługiwany w żadnej nowoczesnej przeglądarce internetowej po wycofaniu wtyczki Flash Player.
- Wymaga ponownego kodowania lub zmiany kontenera na MP4 w celu odtwarzania na urządzeniach z systemami iOS, Android oraz inteligentnych telewizorach.
- Brak nowoczesnych funkcji kontenerów, takich jak ścieżki wielościeżkowego audio oraz responsywne adaptacyjne strumieniowanie bitrate.
Ciekawe informacje techniczne
- Pierwszy film w historii wgrany do serwisu YouTube ('Me at the zoo' w kwietniu 2005 r.) został zakodowany i dostarczony jako plik FLV.
- Sekwencja bajtów magicznych formatu Flash Video '46 4C 56 01' tworzy ciąg ASCII 'FLV' z następcą w postaci wersji kontenera 1.
- Steve Jobs opublikował swój słynny list otwarty 'Przemyślenia na temat programu Flash' w 2010 roku, co przyspieszyło przejście branży z formatu FLV na HTML5 MP4.
Często zadawane pytania techniczne
Dlaczego nie mogę już odtwarzać plików FLV na moim komputerze?
Firma Adobe oraz wszystkie główne przeglądarki internetowe oficjalnie wycofały odtwarzacz Flash Player w grudniu 2020 r. z powodu podatności na zagrożenia bezpieczeństwa. Aby odtwarzać pliki FLV dzisiaj, skorzystaj z odtwarzacza VLC lub przekonwertuj je do formatu MP4.
Czy mogę przekonwertować plik FLV do formatu MP4 bez utraty jakości?
Jeśli plik FLV zawiera wideo H.264 oraz dźwięk AAC, File2File może przeprowadzić bezstratne ponowne pakowanie kontenera do formatu MP4 w kilka sekund bez ponownego kompresowania wideo.
Jakiego kodera-dekodera pierwotnie używały filmy wideo FLAC?
Wczesne pliki FLV używały formatu Sorenson Spark (wariant H.263), a później On2 VP6, zanim firma Adobe dodała w 2007 roku obsługę standardowego H.264.