Ostatnio chciałem wypróbować kodeki Webm VP8 i VP9, ale kiedy pobierałem ffmpeg
kodować plik H.264 MP4 do jednego z pozostałych dwóch kodeków, zdałem sobie sprawę, że kodowanie jest (prawie o rząd wielkości) wolniejsze.
Wideo 1080p30 z H.264 na VP9 przy 3 MBit / s jest kodowane z prędkością około 6-7 fps, podczas gdy to samo wideo koduje z około 40 fps do H.264. Użyłem libvpx-vp9
kodeka w ffmpeg
formacie VP9. Otrzymuję te same wyniki dla VP8 i Theory.
Czy ktoś może mi wyjaśnić, dlaczego VP9 jest o wiele wolniejszy? Wypróbowałem inną maszynę, która dała mi podobne powtórki za pomocą hamulca ręcznego.
Odpowiedzi:
libvpx-vp9
jest znacznie wolniejszym koderem niż,libx264
ale domyślne ustawienia wątków w ffmpeg (0 = auto) nie działają w libvpx. Ręczne ustawienie powoduje wzrost prędkości. na przykładNa 4-rdzeniowym komputerze, gdy koduję strumień H.264 1080-30p, dostaję bump od
3.8 fps
do10 fps
.źródło
-preset
Dlalibx264
i-speed
dlalibvpx-vp9
. Zobaczyćffmpeg -h full
. Mogą mieć znaczącą różnicę, ale wpływają również na jakość lub wydajność kompresji.-speed
opcja nie zrobiła dla mnie ogromnej różnicyVP9 jest bardziej złożonym kodekiem zapewniającym lepszą kompresję. Współczynnik kompresji / wydajności wideo ma tendencję wykładniczą. Należy oczekiwać, że wymiana VP9 (AV1) będzie jeszcze wolniejsza.
źródło