web-dev-qa-db-fra.com

Pourquoi l'encodage de VP8 / 9 est-il si lent comparé à H.264?

Récemment, je voulais essayer les codecs Webm VP8 et VP9, ​​mais quand j’ai exécuté ffmpeg pour coder un fichier H.264 MP4 dans l’un des deux autres codecs, je me suis rendu compte que le codage était (de presque un ordre de grandeur) plus lent.

Une vidéo 1080p30 de H.264 à VP9 à 3 Mbits/s est encodée à environ 6-7 ips, tandis que la même vidéo est encodée à environ 40 ips en H.264. J'ai utilisé le codec libvpx-vp9 dans ffmpeg pour le format VP9. J'obtiens les mêmes résultats pour VP8 et Theora aussi.

Quelqu'un peut-il m'expliquer pourquoi VP9 est tellement plus lent? J'ai essayé une machine différente qui m'a donné des résultats similaires en utilisant Handbrake.

8
comfreak

libvpx-vp9 est un encodeur beaucoup plus lent que libx264 mais les paramètres par défaut des threads dans ffmpeg (0 = auto) ne sont pas effectifs pour libvpx. Le réglage manuel donne un ralentissement. par exemple.

ffmpeg -i in.mp4 -c:v libvpx-vp9 -threads 4 out.mp4

Sur un ordinateur à quatre cœurs, lors de l’encodage d’un flux H.264 1080-30p, je reçois une bosse de 3.8 fps à 10 fps.

10
Gyan

VP9 est un codec plus complexe offrant une meilleure compression. Le rapport compression/performance vidéo a tendance à être exponentiel. Vous devez vous attendre à ce que le remplacement de VP9 (AV1) soit encore plus lent.

3
szatmary