libvpx
jest nieco skomplikowany w odniesieniu do regulacji częstości i ustawień jakości. Więcej informacji można znaleźć w numerach vpx Encoding Guide i VP8 Encode Parameter Guide. Zabrało mi to godzinę pogrzebania kodu źródłowego, żeby to zrozumieć.
Jeśli chcesz ustawić stały bitrate, będzie trzeba ustawić b:v
, maxrate
i minrate
do tych samych wartości, na przykład jak tak (zauważ, że wyszedłem na zewnątrz opcje dźwiękowe tu na zwięzłość):
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -maxrate 1900K -minrate 1900K output.webm
Jeśli zamiast tego chcesz użyć zmiennej jakości i po prostu określ górną granicę dla szybkości transmisji, musisz ustawić zarówno b:v
, jak i crf
. Jeśli pominiesz crf
, określona szybkość transmisji zostanie pobrana jako średnia. Tylko z crf
, koder zmienia znaczenie b:v
na maksymalną dozwoloną szybkość.
ffmpeg -i input.mov -c:v libvpx -b:v 1900K -crf 10 output.webm
wartości 10 dla CRF jest dobrym punktem wyjścia, ale libvpx
może zmienić jakość na klatkę w granicach qmin ≤ q ≤ qmax
, który można również określić, czy chcesz. Ustawienie dolnej granicy 10 dla qmin
wydaje mi się trochę za wysokie, ale w istocie będziesz musiał wykonać próbę i błąd, ponieważ jeśli maksymalna przepływność jest zbyt niska, będziesz ją stale nasycać.
Dziękuję bardzo za Twój czas! :) Jak wspomniałeś w swoim pierwszym przykładzie, pomijając jakość, zrobiłeś lewę. Teraz działa jak urok. –