Kontenery i kodeki

Derek Herman
Derek Herman
Joe Medley
Joe Medley

Aby obsługiwać wiele przeglądarek, musisz użyć programu FFmpeg do przekonwertowania pliku .mov do 2 różnych kontenerów: MP4 i WebM. W w praktyce, prawdopodobnie w tym samym czasie należałoby określić kodek. Na razie, FFmpeg używa jej wartości domyślnych.

Jeśli te pojęcia są dla Ciebie nowe, zapoznaj się z Podstawowe informacje o plikach multimedialnych zanim przejdziemy dalej. Jeśli nie masz zainstalowanego programu FFmpeg, przeczytaj Podstawowe informacje o aplikacji do multimediów aby zacząć korzystać z Dockera.

Korzystamy z sugerowanej instalacji Dockera plik glocken.mov z artykułu Przygotowywanie plików multimedialnych do przeglądania internetu dodano do katalogu media. Użyliśmy FFmpeg w wersji 4.3.2 na potrzeby wszystkich omówione w tej sekcji.

Kontenery

Najpierw musimy utworzyć 2 kontenery z pliku .mov z tagiem .mp4 i .webm ze strumieniem audio i wideo w pliku. Zapoznaj się z podstawowymi informacjami o plikach multimedialnych. aby dowiedzieć się więcej o kontenerach i strumieniach. .

  1. MP4

    /media # ffmpeg -i glocken.mov glocken.mp4
    
  2. WebM

    /media # ffmpeg -i glocken.mov glocken.webm
    

Tworzenie WebM trwa dłużej niż tworzenie formatu MP4. Nie jest to zaskoczeniem, wyniki. Format MP4 kompresuje się do około 83% oryginalnego pliku WebM został obniżony do 78% oryginalnego rozmiaru, ale może być znacznie mniejszy. Wyniki mogą się różnić. Należy zaznaczyć, że FFmpeg 4.2.2 ustawił domyślna szybkość transmisji wideo na 200k, a w 4.3.2 nie ustawia domyślnej. W efekcie film nie jest już sam4% oryginałem. Możesz się o tym przekonać używając polecenia bash ls -a w folderze, w którym znajdują się pliki multimedialne.

Na przykład:

/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root   9503301 Mar 7 18:30 glocken.webm

Aby uzyskać mały plik, wykonaj następujące czynności:

/media # ffmpeg -i glocken.mov -b:v 200k glocken.webm
...
frame=  300 fps=3.6 q=0.0 Lsize=     483kB time=00:00:10.01 bitrate= 395.0kbits/s speed=0.121x
video:359kB audio:117kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 1.356068%
/media # ls -l
-rw-r--r-- 1 root  root  12080306 Mar 7 12:16 glocken.mov
-rwx------ 1 root  root  10106446 Mar 7 12:33 glocken.mp4
-rwx------ 1 root  root    494497 Mar 7 18:45 glocken.webm

Sprawdź swoje zadania

Aby sprawdzić wyniki, użyj programów FFmpeg i Shaka Packager, jak pokazano na ekranie Podstawowe informacje o aplikacji do multimediów:

/media # packager input=glocken.mp4 --dump_stream_info
/media # ffmpeg -i glocken.mp4

Kodeki

Kolejny to kodek. Zgodnie z podstawowymi informacjami o plikach multimedialnych kodek to nie to samo, co kontener (typ pliku). Dwa pliki tego samego kontenera może przechowywać dane skompresowane za pomocą różnych kodeków. Przykład formatu WebM umożliwia kodowanie dźwięku przy użyciu Vorbis lub Opus. Aby zmienić kodek, użyj formatu FFmpeg. Na przykład to polecenie generuje plik .mkv z dźwiękiem vorbis i kodeka wideo av1.

/media # ffmpeg -i glocken.mov -c:a vorbis -c:v av1 glocken.mkv

W tym przykładzie flaga -c:a i -c:v służą do określania dźwięku oraz odpowiednio kodeki wideo.

Na stronie Konwersja mediów znajdziesz listę potrzebne do konwersji kodeków. W tabelach poniżej znajdziesz podsumowanie używanych bibliotek w FFmpeg, aby dokonać konwersji kodeka dla plików WebM i MP4. Są to zalecane dla odpowiednio DASH i HLS.

Wideo

Kodek Rozszerzenie Biblioteka
av1 WebM, MKV Libaom-Av1
h264 MP4 libx264
vp9 WebM libvpx-vp9,

Audio

Kodek Rozszerzenie Biblioteka
AAC MP4 AAC
Opus WebM Libopus
Vorbis WebM libvorbis

Następnie pokażemy Ci, jak zmienić szybkość transmisji bitów nowo utworzonych plików.