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-vp9koder).
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ć NULzamiast /dev/nulli ^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ć 500Klub 5M, i tak dalej.
Trzeba określić -minrate, -maxratea bitrate -b:vw 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 libopusdokumentacji .