FLV to Flash Video, format, którego używał Flash Player firmy Adobe do odtwarzania wideo w przeglądarce. Został stworzony przez firmę Macromedia, twórcę Flasha, a następnie przeszedł do Adobe, gdy ta kupiła Macromedię w 2005 roku. Przez około dekadę był podstawą wideo w internecie: klip oglądany w przeglądarce w tamtym okresie bardzo prawdopodobnie był właśnie plikiem FLV. Adobe zakończyło wsparcie dla Flash Playera w ostatnim dniu 2020 roku, a przeglądarki go usunęły, więc w stronach internetowych FLV nie jest już odtwarzany. Same pliki jednak nie zniknęły. Wciąż leżą w folderach pobierania i archiwach i nadal można je odtworzyć w odtwarzaczu multimedialnym na komputerze.
Jak zbudowany jest plik FLV
FLV ma uderzająco prostą konstrukcję, ponieważ został zaprojektowany do strumieniowania, a nie przechowywania. Krótki nagłówek identyfikuje plik i określa, czy zawiera on dźwięk, wideo, czy oba te elementy. Później plik to już tylko łańcuch znaczników (tagów), z których każdy jest małym pakietem zawierającym typ, znacznik czasu i dane. Tagi audio, wideo i skryptowe są przeplatane w kolejności czasowej, a odtwarzacz po prostu czyta je po kolei. Nie ma centralnego indeksu, co sprawia, że przewijanie w pliku FLV bywa niewygodne.
Kontener sam w sobie niczego nie kompresuje. Wczesne pliki FLV używały kodeka Sorenson Spark dla wideo, późniejsze kodeka On2 VP6, a gdy Flash Player zyskał taką możliwość, wideo H.264 z dźwiękiem AAC, wszystkie stratne. Adobe w końcu wprowadziło F4V jako następcę, zbudowane w oparciu o tę samą strukturę MP4, która jest używana wszędzie indziej.
Jakie metadane zawiera plik FLV
Prawie wszystkie metadane FLV znajdują się w jednym tagu skryptowym blisko początku pliku, zwykle o nazwie onMetaData. Jest to lista nazw i wartości, zapisana w formacie danych, którego Flash używał do komunikacji ze skryptami, a odtwarzacz odczytywał ją przed rozpoczęciem odtwarzania, aby się odpowiednio ustawić. Najczęściej spotykane wpisy to:
- czas trwania, szerokość i wysokość oraz liczba klatek na sekundę (frame rate);
- przepływność wideo i dźwięku oraz numeryczne identyfikatory kodeków wideo i audio;
- częstotliwość próbkowania dźwięku, rozmiar próbki oraz informacja, czy dźwięk jest w stereo;
- rozmiar pliku i flaga mówiąca, czy można przewinąć plik do końca;
- lista pozycji klatek kluczowych i odpowiadających im czasów, dzięki którym przewijanie w ogóle było możliwe;
- nazwa narzędzia, które zapisało lub wstrzyknęło metadane, ponieważ istniały osobne programy służące wyłącznie do dodawania tego bloku do plików, które go nie miały.
Niektóre pliki zawierają też drugi tag skryptowy z pakietem XMP, ustrukturyzowanym formatem tekstowym, którego Adobe używa w swoich produktach. Może on zawierać tytuł, autora, opis i informację o prawach autorskich wpisaną przez użytkownika.
FLV nie ma w ogóle pojęcia metadanych aparatu. Nie ma tam bloku EXIF, marki ani modelu aparatu, danych o obiektywie czy ekspozycji ani pola GPS. Lokalizacja nigdy nie była czymś, co plik Flash Video miał zapisywać. Jedynymi śladami pochodzenia są nazwa narzędzia użytego do zapisu oraz to, co zawiera pakiet XMP.
Warto też znać jedną częstą lukę. Czas trwania i rozmiar pliku są zapisywane dopiero wtedy, gdy znany jest cały plik, więc nagranie przechwycone z transmisji na żywo często nie ma tych wartości lub są one ustawione na zero. Dlatego niektóre odtwarzacze pokazują plik FLV bez osi czasu i nie pozwalają przewijać do przodu: potrzebne informacje nigdy nie zostały uzupełnione.
Co dziś można zrobić z plikiem FLV
Traktuj FLV jako format archiwalny, a nie roboczy. Nie należy tworzyć w nim nowych plików, ponieważ platforma, dla której istniał, już nie funkcjonuje.
MP4 jest następcą pod każdym względem: odtwarza się w przeglądarkach i na telefonach, umożliwia wygodne przewijanie i przechowuje znacznie więcej metadanych. Sposób konwersji ma znaczenie. FLV, który już zawiera wideo H.264 i audio AAC, można zwykle po prostu przemuxować do MP4, czyli jedynie przepisać „opakowanie” i zachować obraz bit po bicie. Starszy plik korzystający z Sorenson Spark lub VP6 musi zostać ponownie zakodowany, co oznacza drugi etap stratnej kompresji, dlatego jeśli nagranie jest ważne, zachowaj oryginał obok kopii.