W tym artykule poznasz podstawowe informacje o plikach multimedialnych, takie jak koncepcje kontenera, oraz kilka z wielu dostępnych formatów kodeka, których możesz używać w strumieniu. Poruszaj też trochę kwestii takich jak adaptacyjne strumieniowe przesyłanie danych, szybkość transmisji bitów i rozdzielczość – ale szczegółowo omówimy wszystkie te zagadnienia w późniejszych sekcjach.
Wyświetlanie plików wideo
Może się wydawać, że wystarczy nieprzetworzony plik z kamery wideo i przesłać go do internetu w takiej postaci, w jakiej został on przesłany do internetu. Rzeczywiście witryny streamingowe, takie jak YouTube czy Vimeo, umożliwiają nawet transmitowanie na żywo. Zazwyczaj trzeba podłączyć je do portu HDMI kamery i przetworzyć za pomocą karty przechwytywania. Te usługi znacznie upraszczają przetwarzanie i przesyłanie filmów, co obejmuje generowanie wielu plików i plików manifestu potrzebnych do adaptacyjnego przesyłania strumieniowego i różnych rozdzielczości. Ma też wiele innych skomplikowanych i niejasnych wymagań, które sprawiają, że prowadzenie samodzielnego hostowania staje się trudne. Przygotowanie i wyświetlenie filmu z własnej witryny (oraz z osobnego serwera multimediów) jest nieco bardziej skomplikowane niż przesyłanie surowego pliku z aparatem, jeśli zależy Ci na wygodzie użytkowników witryny.
Pliki wideo mają różne formaty. Format wysyłany z aparatu to zazwyczaj plik .mov
lub .mp4
, jeśli masz dobry, nowoczesny aparat bezlusterkowy.
Choć .mov
nadaje się do nagrywania, edycji i innych procesów wczesnej postprodukcji, rozmiar pliku oznacza, że nie nadaje się do przesyłania strumieniowego przez internet. Poza tym rozmiar nieprzetworzonego pliku .mp4
w jakości 4K utrudnia też odtwarzanie tego pliku na urządzeniu mobilnym. Przeglądarki obsługują różne formaty plików, więc jeśli chcesz obsługiwać strumieniowanie adaptacyjne, musisz utworzyć wiele zoptymalizowanych plików oraz potencjalnie plik manifestu. Zanim konwertujesz pliki,
poznaj ich podstawowe informacje o nich i ich cechach.
Kontenery, kodeki i strumienie?
Plik widoczny w powłoce systemu operacyjnego jest kontenerem identyfikowanym przez rozszerzenie pliku (.mp4
, .webm
, .ogg
itd.). Kontenery zawierają co najmniej 1 strumieni. Plik multimedialny może mieć dowolną liczbę strumieni i wiele większej liczby formatów, niż omówimy tutaj.
Przykładowe pliki używane w dalszej części tej sekcji zawierają maksymalnie 2 strumienie: strumień audio i strumień wideo. Możesz napotkać m.in. napisy i dane, których zakres wykracza poza zakres tego artykułu. Istnieją sytuacje, w których strumienie audio i wideo są traktowane oddzielnie. Większość plików, które napotkasz, zawiera tylko jeden strumień audio i 1 strumień wideo.
Rzeczywiste dane w strumieniach audio i wideo są kompresowane za pomocą kodeka. Kodek, czyli koder/dekoder, jest formatem kompresji danych wideo lub audio. Różnica między kontenerem a kodekiem jest ważna, ponieważ zawartość plików z tym samym kontenerem może być kodowana za pomocą różnych kodeków.
Ta struktura jest przedstawiona na ilustracji poniżej. Po lewej stronie widać podstawową strukturę kontenera z 2 strumieniami. Po prawej stronie znajdziesz specyfikę struktury pojedynczego pliku WebM.
Pliki w kontenerach WebM mogą być rzędy mniejsze niż w innych formatach, dlatego są dobrym rozwiązaniem do strumieniowego przesyłania danych w witrynach mobilnych. Niestety nie wszystkie przeglądarki obsługują aktualne kontenery i kodeki. Na przykład WebM został stworzony specjalnie z myślą o internecie jako opcja wysokiej jakości i oprogramowanie open source, ale jego obsługa nie jest jeszcze uniwersalna. Według strony Can I use w momencie tworzenia tego tekstu przeglądarka Safari nie obsługuje WebM w przypadku umieszczania filmów na stronach. WebM ma jednak częściowe wsparcie z kodekiem VP8 i VP9 używanym w WebM. Dlatego najlepszym rozwiązaniem jest dostarczenie filmu zastępczego.
Formaty kodeka
Wiele typów plików obsługuje wiele kodeków w tym samym kontenerze. Pełna lista dostępnych kodeków wideo i kodeków audio to cała witryna. Przedstawione tu linki prowadzą do praktycznych list MDN na temat tego, co można używać w internecie. Poniżej wymieniono obecnie preferowane typy plików i kodeki, których mogą używać. Kliknij linki do określonych typów plików, aby wyświetlić listę przeglądarek, które je obsługują.
Typ pliku | Kodek wideo | Kodek audio |
---|---|---|
MP4 | AV1, AVC (H.264)*, VP9 | AAC |
WebM | AV1, VP9* | Vorbis, Opus |
* Wskazuje preferowany kodek wideo.
Szybkość transmisji bitów i rozdzielczość
Szybkość transmisji bitów to maksymalna liczba bitów używanych do kodowania 1 sekundy strumienia. Im więcej bitów jest używanych do kodowania sekundy strumienia, tym większa potencjalna szczegółowość i wierność. Więcej informacji na ten temat znajdziesz w artykule Szybkość transmisji bitów.
Rozdzielczość to ilość informacji w pojedynczej klatce filmu podana jako liczba pikseli logicznych w każdym wymiarze. Więcej informacji na ten temat znajdziesz w sekcji Rozwiązanie.
W dalszej części, w sekcji Podstawy aplikacji do multimediów, pokażemy Ci, jak analizować te cechy przy użyciu 2 narzędzi wiersza poleceń: Shaka Packager i FFmpeg.