Uwaga: Ta informacja jest oparta na Wiki FFmpeg o kodowaniu VP9 . Więcej informacji można znaleźć w tym artykule - będzie on stale utrzymywany i rozszerzany. Aby uzyskać najlepsze wyniki, należy użyć najnowszej wersji ffmpeg
, pobierając ją ze strony internetowej (wystarczy kompilacja statyczna; zawiera ona libvps-vp9
koder).
Zmienna przepływność
Kodowanie VBR zapewnia optymalną ogólną jakość, ponieważ koder może dowolnie wybierać liczbę bitów do przypisania do ramki. Wybierz ten tryb, chyba że przygotowujesz filmy do przesyłania strumieniowego o stałej przepływności.
Opcja 1: Kodowanie o stałej jakości
Zazwyczaj, jeśli nie chcesz kierować na określony rozmiar pliku, powinieneś pozwolić na swobodną zmianę bitrate, ponieważ doprowadzi to do najwyższej jakości. Możesz to zrobić, ustawiając bitrate na 0, a współczynnik stałej szybkości ( CRF ) na docelowy poziom jakości:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -crf 30 -b:v 0 output.webm
Wartość CRF może wynosić od 0–63. Niższe wartości oznaczają lepszą jakość. Zalecane wartości mieszczą się w zakresie 15–35, przy czym 31 jest zalecane dla wideo HD 1080p. Google ma przewodnik z dodatkowymi informacjami na ten temat .
Opcja 2: kodowanie dwuprzebiegowe z docelową przepływnością
Jeśli chcesz, aby plik miał określoną docelową szybkość transmisji lub rozmiar pliku, musisz określić szybkość i zastosować kodowanie dwuprzebiegowe (co zapewni optymalną dystrybucję jakości). Tutaj wybieramy 5 MBit / s, co powinno wystarczyć dla treści 1080p.
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 1 -f webm /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 5M -pass 2 output.webm
Użytkownicy systemu Windows muszą używać NUL
zamiast /dev/null
i ^
zamiast \
.
Stała szybkość transmisji
Po pierwsze, libvpx oferuje tryby kodowania o stałej przepływności i zmiennej przepływności . Zawsze, gdy jest to możliwe, należy unikać stałej szybkości transmisji (chyba że celujesz w określony rozmiar pliku lub scenariusz przesyłania strumieniowego), ponieważ średnia jakość na rozmiar pliku będzie gorsza. Mimo to możesz spróbować ustawić stały bitrate, jeśli nic więcej nie działa, np. Z 1 MBit / s:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -minrate 5M -maxrate 5M -b:v 5M output.webm
Spójrz na wynik i zwiększ lub zmniejsz częstość bitów do swoich upodobań (lub ograniczeń rozmiaru pliku). Na przykład możesz użyć 500K
lub 5M
, i tak dalej.
Trzeba określić -minrate
, -maxrate
a bitrate -b:v
w celu kodera używać CBR. Wszystkie muszą mieć tę samą wartość - w przeciwnym razie wybierze inną docelową szybkość transmisji i wykona kodowanie VBR, ale o złej jakości.
Audio
Obecnie wybranym kodekiem audio do kodowania VP9 jest Opus. FFmpeg domyślnie wybierze potrzebny koder i jego opcje. Jeśli chcesz to wyraźnie ustawić -c:a libopus
, możesz to zrobić. Więcej informacji znajduje się w libopus
dokumentacji .