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.
.
MP4
/media # ffmpeg -i glocken.mov glocken.mp4
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.