Strona główna
» LINUX
»
Jak transkodować pliki wideo w systemie Linux za pomocą HandBrake lub FFmpeg
Jak transkodować pliki wideo w systemie Linux za pomocą HandBrake lub FFmpeg
Do transkodowania plików wideo w systemie Linux można użyć HandBrake, który zapewnia prosty graficzny przepływ pracy, lub FFmpeg, gdy potrzebna jest precyzyjna kontrola z poziomu wiersza poleceń. HandBrake jest łatwiejszy w przypadku jednorazowych konwersji; FFmpeg jest lepszy w przypadku powtarzalnych poleceń, automatyzacji i zaawansowanych opcji kodeków.
Ważna różnica: transkodowanie dekoduje strumień wideo lub audio i koduje go ponownie, co zajmuje czas i może obniżyć jakość. Jeśli konieczna jest jedynie zmiana kontenera, na przykład z MKV na MP4, a istniejące kodeki są kompatybilne, remux pozwala skopiować strumienie bez ponownego kodowania. Oficjalna dokumentacja FFmpeg zaleca kopiowanie strumieni, gdy transkodowanie nie jest konieczne.
Metoda 1: Transkodowanie wideo za pomocą HandBrake
HandBrake to prostszy wybór, jeśli preferujesz interfejs graficzny. W przypadku Linuksa projekt HandBrake zaleca wersję Flatpak z Flathub jako najwygodniejszą, obsługiwaną instalację. Zapoznaj się z oficjalną instrukcją instalacji HandBrake w systemie Linux . Jeśli Flatpak i Flathub są już włączone, zainstaluj je za pomocą:
flatpak install fr.handbrake.ghb
1. Otwórz źródłowy film
Uruchom HandBrake i wybierz opcję „Open Source” , a następnie wybierz plik wideo, który chcesz przekonwertować. HandBrake obsługuje również funkcję „przeciągnij i upuść” dla wielu typów plików. Po przeskanowaniu źródła wyświetla tytuł, rozdzielczość, liczbę klatek na sekundę, ścieżki audio i inne szczegóły.
Wybierz plik źródłowy, który chcesz zakodować za pomocą HandBrake.
2. Wybierz ustawienie wstępne
Wybierz ustawienie predefiniowane, które pasuje do urządzenia lub oprogramowania do odtwarzania, którego planujesz używać. Aktualna dokumentacja HandBrake podaje, że Fast 1080p30 to dobry punkt wyjścia dla szerokiej kompatybilności. Ustawienie predefiniowane może zmienić maksymalną rozdzielczość, liczbę klatek na sekundę, kodek wideo, ustawienia audio i kontener.
Ustawienia predefiniowane stanowią praktyczny punkt wyjścia do uzyskania zgodnych ustawień wyjściowych.
3. Ustaw nazwę i lokalizację wyjścia
Sprawdź interesujące Cię ustawienia, a następnie ustaw nazwę pliku i folder docelowy. Nie zakładaj, że HandBrake automatycznie zapisze plik w folderze Wideo: dane wyjściowe są zapisywane w wybranym przez Ciebie miejscu docelowym . Skrócony przewodnik po HandBrake wyraźnie zaleca sprawdzenie tego przed rozpoczęciem.
Wybierz jasną nazwę pliku wyjściowego i sprawdź folder docelowy.
4. Rozpocznij kodowanie
Kliknij „Rozpocznij kodowanie” . HandBrake wyświetla postęp w trakcie pracy i powiadamia o jej zakończeniu. Szybkość kodowania zależy od źródła, rozdzielczości, wybranego enkodera, ustawień jakości, filtrów i sprzętu, dlatego nie ma sztywnego czasu zakończenia.
HandBrake raportuje postęp i szacowany czas podczas transkodowania.
Metoda 2: Transkodowanie wideo za pomocą FFmpeg
FFmpeg jest idealny, gdy potrzebujesz powtarzalnego polecenia lub musisz przetworzyć wiele plików. Zainstaluj ffmpegpakiet z dystrybucji Linuksa lub skorzystaj z linków do pakietów na oficjalnej stronie pobierania FFmpeg . Wersje pakietów i włączone kodery mogą się różnić w zależności od dystrybucji.
1. Sprawdź, czy FFmpeg jest dostępny
Otwórz terminal i uruchom:
ffmpeg -version
Zainstalowana kompilacja FFmpeg określa, które kodeki i sprzętowe enkodery są dostępne.
2. Sprawdź plik wejściowy
Przejdź do folderu zawierającego Twój film i sprawdź strumienie przed jego konwersją:
cd ~/Videos
ffmpeg -i sample-video.mkv
Sprawdzenie danych wejściowych ujawnia ich aktualne kodeki, rozdzielczość, liczbę klatek na sekundę i format audio.
3. Transkodowanie do formatu wideo H.264 i dźwięku AAC w formacie MP4
Aby uzyskać przewidywalny i szeroko kompatybilny format MP4, określ kodeki zamiast opierać się wyłącznie na rozszerzeniu wyjściowym:
Tutaj libx264koduje wideo H.264, crf 22kontroluje jakość, mediumrównoważy prędkość i kompresję, a dźwięk jest używany w formacie AAC. Niższe wartości CRF zazwyczaj oznaczają wyższą jakość H.264 i większy rozmiar pliku. Jeśli Twoja kompilacja FFmpeg nie zawiera wymaganego kodera, wybierz taki, który obsługuje Twoja kompilacja.
Podczas kodowania FFmpeg drukuje informacje o klatce, czasie, szybkości transmisji i inne informacje o postępie.
4. Użyj kopiowania strumieniowego, gdy potrzebujesz tylko nowego kontenera
Jeśli źródło zawiera już kodeki obsługiwane przez kontener docelowy, należy unikać pełnego transkodowania i zamiast tego wykonać remuxowanie:
-c copyKopiuje kompatybilne strumienie bez ich dekodowania i ponownego kodowania. Jest to zazwyczaj znacznie szybsze i pozwala uniknąć utraty jakości podczas generacji, ale zakończy się niepowodzeniem lub wygeneruje nieodpowiedni plik, gdy kodeki źródłowe nie będą poprawne dla wybranego kontenera.
Kopiowanie strumieniowe zmienia kontener bez ponownego kodowania zgodnych strumieni audio i wideo.
Którą opcję powinieneś wybrać?
Użyj HandBrake, jeśli potrzebujesz intuicyjnego interfejsu graficznego, ustawień wstępnych urządzeń i łatwej kontroli jakości.
Użyj FFmpeg, gdy potrzebujesz konkretnych kodeków, przetwarzania wsadowego, skryptów, filtrów lub powtarzalnych poleceń.
Użyj remuxowania, gdy kodeki są już odpowiednie i potrzebujesz tylko innego kontenera.
W przypadku większości zastosowań na komputerach stacjonarnych, plik MP4 z wideo H.264 i dźwiękiem AAC pozostaje praktycznym wyborem. Jeśli Twoje urządzenie lub usługa docelowa ma własną specyfikację przesyłania, postępuj zgodnie z nią, zamiast konwertować tylko rozszerzenie.