Wyszukiwanie w witrynie

Jak kodować wideo H.265 za pomocą ffmpeg w systemie Linux


Prawie cały obraz, który oglądamy w cyfrowej telewizji naziemnej, kablowej, satelitarnej lub przez Internet, jest skompresowany. Surowe, nieskompresowane wideo jest po prostu za duże i marnuje zbyt dużo przepustowości. Dawno temu, przed DVD i Blu-ray, istniała płyta Video CD (VCD). Był to pierwszy format używany do komercyjnej dystrybucji filmów na standardowych dyskach optycznych 120 mm (4,7 cala). Wideo na dyskach zostało zakodowane w formacie MPEG-1, formacie kompresji stratnej przeznaczonym do przesyłania strumieniowego danych wideo z szybkością 1,5 Mbit/s. Prawdopodobnie najbardziej znanym składnikiem standardu MPEG-1 był format kompresji dźwięku. Oficjalnie nazywany MPEG-1 Audio Layer III, prawdopodobnie znasz go jako MP3.

Po MPEG-1 pojawił się MPEG-2, który został wybrany jako standard kompresji wideo dla wideo DVD. Był on również używany jako podstawowy standard wideo dla cyfrowej telewizji satelitarnej (DVB-S) i cyfrowej telewizji naziemnej (DVB-T). MPEG-2 został także ratyfikowany przez Międzynarodowy Związek Telekomunikacyjny (ITU) jako H.262. Po DVD pojawił się Blu-ray, który oprócz filmów zakodowanych w MPEG-2 obsługuje także H.264 lub MPEG-4 Part 10, Advanced Video Coding (MPEG-4 AVC), jak go oficjalnie nazywano.

  • MPEG-1: Używany w przypadku płyt Video CD
  • MP3: Część standardu MPEG-1, wszechobecna dzisiaj
  • MPEG-2/H.262: Używany w przypadku płyt DVD i innych nośników cyfrowych
  • MPEG-4 część 10/H.264: używany w Blu-ray
  • MPEG-H/H.265: format kodowania nowej generacji z obsługą rozdzielczości 4K i 8K

Po H.264 przyszedł czas na H.265. Ma także kilka innych nazw, najczęściej jest to kodowanie wideo o wysokiej wydajności (HEVC) lub MPEG-H. H.265 podwaja współczynnik kompresji danych w porównaniu do H.264 i może obsługiwać rozdzielczości do 8192×4320. Oznacza to, że wideo o tej samej jakości wymaga tylko połowy przepustowości (lub rozmiaru pliku). Alternatywnie oznacza to, że jakość wideo można znacznie poprawić przy tej samej przepływności, co jest bardzo ważne w przypadku wyświetlaczy o bardzo wysokiej rozdzielczości (tj. 4K i 8K).

Dobra wiadomość dla użytkowników Linuksa jest taka, że kodek H.265 jest dostępny w popularnym pakiecie kodowania „ffmpeg”. Chociaż ffmpeg prawdopodobnie istnieje w repozytoriach Twojej dystrybucji, może być nieaktualny lub może nie mieć wkompilowanej obsługi H.265. Najłatwiejszym sposobem uzyskania najnowszej i najbardziej funkcjonalnej wersji ffmpeg jest pobranie statycznie połączonych kompilacji.

Pobierz 32-bitowy lub 64-bitowy plik .tar.xz. Jeśli nie masz pewności, który pobrać, użyj wersji 32-bitowej. W katalogu, do którego pobrałeś plik, uruchom następującą komendę, aby rozpakować plik archiwum:

tar xvf ffmpeg-2.4-32bit-static.tar.xz

Gdzie „ffmpeg-2.4-32bit-static.tar.xz” to nazwa pobranego pliku.

Spowoduje to utworzenie katalogu o nazwie „ffmpeg-2.4-32bit-static”. W tym katalogu znajdują się pliki binarne „ffmpeg” i „ffprobe” (wraz z kilkoma innymi plikami binarnymi). Aby zakodować wideo w formacie H.265, użyj następującego polecenia:

./ffmpeg -i video.mp4 -c:a copy -c:v libx265 video-h265.mp4

Parametr -i określa wejściowy plik wideo, w tym przypadku „video.mp4”. ffmpeg może dekodować całą gamę formatów wideo, w tym .avi, .mp4 i .mov.

Parametr -c:a copy mówi ffmpeg, aby skopiował strumień audio z oryginalnego pliku bezpośrednio do pliku wyjściowego. Podczas gdy -c:v libx265 mówi ffmpeg, aby zakodował nowy plik wideo w formacie H.265.

Ostatnim parametrem jest żądana nazwa pliku wyjściowego zakodowanego w formacie H.265. ffmpeg może tworzyć pliki .mp4, .mov i .mkv z wideo zakodowanym w formacie H.265.

Po zakończeniu kodowania sprawdź rozmiar pliku obu filmów; powinieneś zauważyć znaczny spadek rozmiaru pliku wideo zakodowanego w formacie H.265:

ls video.mp4 video-h265.mp4

Aby sprawdzić, czy plik został poprawnie zakodowany, użyj polecenia ffprobe w następujący sposób:

ffprobe video-h265.mp4

Dane wyjściowe pokażą, że strumień wideo (prawdopodobnie strumień nr 0) jest zakodowany przy użyciu hvec, tj. H.265. Strumień audio zostanie zakodowany w dowolnym formacie użytym w oryginalnym pliku, ponieważ został właśnie skopiowany z jednego do drugiego.

Jeśli masz jakieś pytania dotyczące samego ffmpeg, istnieje tętniąca życiem społeczność z listami mailingowymi, kanałami IRC i forami. Jeśli masz jakieś pytania dotyczące powyższych przykładów, skorzystaj z sekcji komentarzy poniżej, a zobaczymy, czy możemy pomóc.

Powiązane artykuły