Ustawienia dla ffmpeg dla najlepszej jakości VP9 dla publikacji w Internecie

2

Mam wideo w formacie Apple ProRes 422, który planuję zakodować do Google VP9 w celu opublikowania w Internecie. Źródłem jest:

Stream #0:0(und): Video: prores (apcn / 0x6E637061), yuv422p10le(bt709), 1920x1080, 114644 kb/s, SAR 1:1 DAR 16:9, 23.98 fps, 23.98 tbr, 24k tbn, 24k tbc (default)

Moim celem jest zakodowanie go do VP9 z najlepszą możliwą (rozsądną) jakością, prawie nie do odróżnienia od oryginału. Rozmiar pliku wynikowego nie ma znaczenia. Teraz używam następujących elementów, ale wideo w Chrome wygląda źle:

ffmpeg -i Source.mov -c:v libvpx-vp9 -b:v 4M -pix_fmt yuv420p -speed 4 -frame-parallel 0 -threads 2 -c:a libopus -b:a 320K Result.webm

Próbowałem się zwiększyć -b:v 4M ustawienie, rozmiar wzrasta, ale jakość nie. Próbowałem też ten przewodnik , ale prawdopodobnie jest przestarzały i nie mogę uzyskać żadnego satysfakcjonującego wyniku. Przy okazji, mam najnowsze ffmpeg skompilowany ze źródła.

Który ffmpeg ustawień powinienem użyć?

TranslucentCloud
źródło
Ale czy masz najnowszy libvpx?
llogan
libvpx-dev jest z Testowanie Debiana repozytorium, które jest teraz w wersji 1.5.0-2.
TranslucentCloud

Odpowiedzi:

2

Wykonujesz kodowanie 1-pass w prędkości 4, które są szybkimi parametrami, ale dalekie od optymalnej jakości.

Przewodnik wydaje się dobry, wypróbowałeś jego 2-przebiegowe lub stałe / ograniczone ustawienia jakości? Oczywiście nie zachowuj przykładu 1000 bitrate.

Ely
źródło
Tak, wczoraj dał przewodnikowi drugą próbę i odniósł sukces. Szczegóły są w mojej odpowiedzi.
TranslucentCloud
2

Dobra, po kilku eksperymentach znalazłem, że przewodnik, o którym wspomniałem w pytaniu, jest całkiem przydatny. Odniosłem sukces z instrukcjami od Zalecane ustawienia stałej jakości sekcji, a co trzeba było dostroić, to -crf oprawa.

Po wielu testach skończyłem z -crf 23 ustawienie, z którym wynik webm plik jest bardzo dobrej jakości w porównaniu z oryginałem.

Dokładny ffmpeg polecenia to:

  1. Pierwsze podanie:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 1 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 4 -tile-columns 6 -frame-parallel 1 -an -y -f webm /dev/null
    
  2. Drugie podanie:

    ffmpeg -i Source.mov -c:v libvpx-vp9 -pass 2 -pix_fmt yuv420p -b:v 0 -crf 15 -threads 2 -speed 2 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 -c:a libopus -b:a 320k -f webm Out.webm
    

Z jakiegoś powodu pierwsze przejście nie wykorzystuje wszystkich rdzeni procesora (2 w moim przypadku), pomimo -threads 2 opcja, jednak druga używa ich wszystkich.

TranslucentCloud
źródło
W trybie CRF można pominąć, używając dwóch przebiegów, bez znacznych kosztów jakościowych.
Gyan