Recentemente, eu queria experimentar os codecs Webm VP8 e VP9, mas quando corri ffmpeg
para codificar um arquivo H.264 MP4 em um dos outros dois codecs, percebi que a codificação é (quase por uma ordem de magnitude) mais lenta.
Um vídeo 1080p30 de H.264 a VP9 a 3 MBit / s está sendo codificado em torno de 6-7 fps, enquanto o mesmo vídeo codifica em torno de 40 fps em H.264. Eu usei o libvpx-vp9
codec no ffmpeg
formato VP9. Estou obtendo os mesmos resultados para VP8 e Theora também.
Alguém pode me explicar por que o VP9 é muito mais lento? Eu tentei uma máquina diferente que me deu resultados semelhantes usando o Handbrake.
Respostas:
libvpx-vp9
é um codificador muito mais lento que,libx264
mas as configurações padrão dos threads no ffmpeg (0 = auto) não são eficazes para a libvpx. A configuração manual fornece um aumento de velocidade. por exemploEm uma máquina de 4 núcleos, ao codificar um fluxo 1080-30p H.264, recebo um aumento de
3.8 fps
para10 fps
.fonte
-preset
paralibx264
e-speed
paralibvpx-vp9
. Vejaffmpeg -h full
. Isso pode fazer muita diferença, mas também afeta a qualidade ou a eficiência da compactação.-speed
opção de não fazer uma enorme diferença para mimO VP9 é um codec mais complexo, proporcionando melhor compactação. A taxa de compactação / desempenho do vídeo tende a ser exponencial. Você deve esperar que a substituição do VP9 (AV1) seja ainda mais lenta.
fonte