2013-04-02 9 views
8

Próbuję zakodować swoje filmy do WebM:Dlaczego FFMPEG zawsze tworzy duże pliki WebM?

ffmpeg -i input.MOV -codec:v libvpx -quality good -cpu-used 0 -b:v 10k 
-qmin 10 -qmax 42 -maxrate 10k -bufsize 20k -threads 8 -vf scale=-1:1080 
-codec:a libvorbis -b:a 192k 
output.webm 

chcę zakodować w kilku różnych przepływnościach (video i audio) łączny:

  • 2192 kbps
  • 1692 kbps
  • 1000 kbps

problemem jest to, że bez względu na to, który ugryzł ceny Wchodzę, zawsze otrzymuję plik z bitową szybkością wyższą niż 1900 kbps. (1914 kbps z powyższym przykładem kodu.)

Co robię źle?

Odpowiedz

12

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ć.

+0

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. –

Powiązane problemy