Wideo Flash (.flv)
Specyfikacja StandardFlash Video (FLV) to kontener opracowany przez Macromedia i Adobe do przesyłania zsynchronizowanego wideo i audio przez internet za pomocą wtyczki Adobe Flash Player do przeglądarki.
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 firmy Adobe Systems
Specyfikacja techniczna
| Architektura kontenera | Kontener strumieniowy oparty na znacznikach, przeplatający dane audio, wideo i skryptów |
| 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 |
|---|---|---|---|---|
| Obecna obsługa przez przeglądarki | 0% (całkowicie usunięta z nowoczesnych przeglądarek) | 100% uniwersalna we wszystkich przeglądarkach | Obsługa we wszystkich 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 systemach iOS i nowoczesnym Androidzie | Natywna obsługa sprzętowa | Natywna obsługa sprzętowa | Obsługiwane przez VLC / aplikacje firm trzecich |
| Przezroczystość alfa | Obsługa przez kodek 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
Czas trwania pobranego filmu FLV jest oznaczony jako „nieznany” i nie można przewijać nagrania.
Główna przyczyna: Brak znacznika skryptowego 'onMetaData' zawierającego tablice znaczników czasu klatek kluczowych oraz rozmiaru pliku.
Odzyskiwanie: Dodaj brakujące tablice klatek kluczowych za pomocą narzędzia „yamdi” (Yet Another MetaData Injector) lub przekonwertuj plik do MP4 w File2File.app.
Analiza bezpieczeństwa i wektory ataku na parser
Wtyczka Flash Player była historycznie jednym z najczęściej wykorzystywanych do ataków składników oprogramowania. Przyczyną były błędy uszkodzenia pamięci w ActionScript i parserach FLV.
Znane wektory ataku
- Użycie zwolnionej pamięci (use-after-free) i przepełnienie sterty w silniku parsującym FLV w ActionScript 3 (np. CVE-2015-5122).
- Nieprawidłowo sformowane pakiety metadanych AMF0/AMF3 mogą powodować uszkodzenie pamięci w podatnych parserach.
- Przepełnienia bufora w przestarzałych procedurach dekompresji Sorenson Spark.
Najlepsze praktyki obronne: Nigdy nie uruchamiaj natywnych wtyczek Flash Player. Przekonwertuj zarchiwizowane pliki FLV bezpośrednio do MP4 za pomocą FFmpeg działającego w piaskownicy.
Pochodzenie historyczne i kamienie milowe
Główne zalety
- Historyczny pionier powszechnego wideo online: umożliwił odtwarzanie wideo w przeglądarce bez osobnego odtwarzacza komputerowego.
- Obsługa przezroczystości kanału alfa w strumieniach wideo używających kodeka 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.
- Do odtwarzania na urządzeniach z iOS, Androidem i w telewizorach Smart TV plik trzeba ponownie zakodować lub zmienić jego kontener na MP4.
- Brak nowoczesnych funkcji kontenerów, takich jak wiele ścieżek audio oraz adaptacyjne strumieniowanie ze zmienną przepływnością bitową.
Ciekawe informacje techniczne
- Pierwszy film przesłany do YouTube („Me at the zoo”, kwiecień 2005 r.) zakodowano i udostępniono jako plik FLV.
- Sekwencja sygnatury Flash Video „46 4C 56 01” zapisuje w ASCII „FLV”, po czym podaje wersję 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?
Adobe i wszystkie główne przeglądarki oficjalnie wycofały Flash Player w grudniu 2020 r. z powodu luk w zabezpieczeniach. Aby obecnie odtwarzać pliki FLV, użyj odtwarzacza VLC albo przekonwertuj je do MP4.
Czy mogę przekonwertować plik FLV do formatu MP4 bez utraty jakości?
Zgodne strumienie H.264 i AAC można remuksować z FLV do MP4 bez ponownego kodowania; czas zależy od pliku i urządzenia.
Jakich kodeków używały pierwotnie filmy FLV?
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.