Test et comparatif de multiple codec

Mise à jour: 29/01/2022

Note: Cette page n'a pas pour but d'être la plus précise niveau résultat.
En effet selon le contenu de la video, ces résulats peuvent varié grandement.
Le but est de donnée un ordre d'idée sur lequelle une comparaison est possible.

Mon objectif principal etait de trouver un régle de qualité, qui soit identique sur tout les encodeurs "récent".
Mon objectiuf secondaire est de trouver un compromis entre la compression et la vitesse d'encodage.

La vidéo utilisé comme référence est un enregistrement de 5 minutes sur le jeu Left 4 dead 2. C'est un fichier video en x264, encodé sans perte.
A lui tout seul, ce fichier prend pas mal de ressources Donc ne pas oublier de garder ça en tête.
Aussi c'est du 1080x1920@60fps. Pas de la 4K donc. Etant donner que il y a de l'action et que ça bouge pas mal, c'est plutot un cas typique. Processeur: 5820k, 6 core @ 4.2 ghz.
Les encodage sont fait en 8bit. Biensur on peut encoder en 10bit, mais cela rallonge le temps d'encodage, et la compatibilité n'est pas la même.

Codec utilisé:

MaJ Janvier 2022:

Aussi, le but est d'encoder au moins a 10fps. Les résultat trop lent sont donc pas retenu ici (sauf 264 en vslow, a titre de)

Tableau des résultats

Note: Classé du meilleur au moins bon.
Calcule du score (Framerate / Poids ) x 100 : Avantage le capture sur le poids de la video. Afin de trouver un bon compromis.

Supérieur a 20 : Adapté au streaming. Capture rapide, mais un peu plus lourd.
~ 15: Les meilleurs compromis sont ici.
Entre 5 et 10: Beaucoup d'effort pour un gain peu important en poids, il y a probablement mieux.
Inférieur à 5 : Perte de temps: Y'a surement mieux !!

Codec Q. Sett Quality Résultat SSIM Framerate Poids Score
264 original lossless 1 N/A 11900m N/A
264 s.fast crf22 SSIM Y:0.976471 (16.284054) U:0.989035 (19.599990) V:0.990157 (20.068659) All:0.980846 (17.177480) ~160fps 495m 32,32
264 v.fast crf20 SSIM Y:0.975656 (16.136023) U:0.988957 (19.569198) V:0.990107 (20.046724) All:0.980281 (17.051184) 103 (1.720) 390m 26,41
av1 (svt 0.9) 10b q11 cq 28 SSIM Y:0.974518 (15.937732) U:0.992168 (21.061036) V:0.992818 (21.437719) All:0.980510 (17.101860) 69,61fps 357m 19,60
av1 (svt 0.9) q11 cq 26 SSIM Y:0.974881 (16.000037) U:0.991267 (20.588468) V:0.991995 (20.966213) All:0.980465 (17.091765) 80,95fps 417m 19,42
264 faster crf21 SSIM Y:0.975368 (16.085050) U:0.988738 (19.483819) V:0.989928 (19.968914) All:0.980023 (16.994739) 70fps (1.170) 374m 18,71
av1 (svt 0.9) 10b q12 cq 26 SSIM Y:0.973728 (15.805108) U:0.992164 (21.059305) V:0.992853 (21.458921) All:0.979988 (16.987191) 81,91fps 454m 18,06
av1 (svt 0.9) 10b q10 cq 30 SSIM Y:0.974376 (15.913449) U:0.992047 (20.994433) V:0.992745 (21.393623) All:0.980382 (17.073512) 51,51fps 300m 17,33
av1 (svt 0.9) 10b q9 cq 32 SSIM Y:0.974307 (15.901834) U:0.991839 (20.882647) V:0.992642 (21.332130) All:0.980285 (17.051969) 34,33fps 238m 14,28
264 medium crf21 SSIM Y:0.974847 (15.994078) U:0.989739 (19.887974) V:0.990771 (20.348451) All:0.979983 (16.985978) 49 (0.811) 366m 13,38
av1 (svt 0.9) q8 cq 32 SSIM Y:0.973707 (15.801676) U:0.991019 (20.466689) V:0.991883 (20.905837) All:0.979622 (16.908362) 28,92fps 233m 12,44
av1 (svt 0.9) 10b q8 cq 33 SSIM Y:0.973883 (15.830822) U:0.991720 (20.819865) V:0.992545 (21.275473) All:0.979966 (16.982416) 26,37fps 212m 12,43
av1 (svt 0.9) q8 cq 31 SSIM Y:0.974795 (15.985060) U:0.991320 (20.614634) V:0.992158 (21.055865) All:0.980443 (17.086911) 26,33fps 252m 10,32
264 slow crf 21 SSIM Y:0.974831 (15.991309) U:0.989593 (19.826809) V:0.990625 (20.280421) All:0.979924 (16.973146) ~ 31fps 358m 8,65
265 medium crf 21 SSIM Y:0.974382 (15.914554) U:0.989334 (19.719950) V:0.990510 (20.227416) All:0.979562 (16.895624) ~20fps 271m 7,38
av1 (svt 0.9) 10b q6 cq 34 SSIM Y:0.974376 (15.913531) U:0.991990 (20.963562) V:0.992783 (21.416467) All:0.980379 (17.072894) 9,98fps 186m 5,37
vp9 2 crf 33 SSIM Y:0.973994 (15.849292) U:0.990789 (20.356748) V:0.991832 (20.878715) All:0.979766 (16.939219) 14 fps (0.237) 275m 5,09
av1(old) q8 cq 33 SSIM Y:0.974709 (15.970380) U:0.991487 (20.699149) V:0.992187 (21.071797) All:0.980418 (17.081534) 10fps 235m 4,29
264 v.slow crf21 SSIM Y:0.974521 (15.938185) U:0.989630 (19.842397) V:0.990671 (20.301752) All:0.979731 (16.931672) 8 fps (0.133) 335m 2,39
av1 (svt 0.9) 10b q7 cq 35(!:34) SSIM Y:0.972484 (15.604162) U:0.991493 (20.701986) V:0.992334 (21.154558) All:0.978961 (16.769657) (!) 17,96fps 178m (!) 10,11

264 10b|faster| crf 21 |SSIM Y:0.976627 (16.312805) U:0.989595 (19.827434) V:0.990725 (20.327074) All:0.981138 (17.244085) | 54fps | 361m 264 10b|faster| crf 22 |SSIM Y:0.976627 (16.312805) U:0.989595 (19.827434) V:0.990725 (20.327074) All:0.981138 (17.244085) | 54fps | 318m

Valeur mis de côté:

Codec Q. Sett Quality Résultat SSIM Framerate Poids
264 slow crf 22 SSIM Y:0.972213 (15.561602) U:0.988945 (19.564269) V:0.990039 (20.016855) All:0.977973 (16.570376) 36fps (0.605) 311m
264 s.fast crf21 SSIM Y:0.979000 (16.777868) U:0.989689 (19.866925) V:0.990720 (20.324394) All:0.982735 (17.628324) 156fps (2.590) 578m
264 s.fast crf 11 SSIM Y:0.993714 (22.016087) U:0.994946 (22.963600) V:0.995287 (23.266930) All:0.994181 (22.351748) beaucoup 2630m
264 v.fast crf22 SSIM Y:0.969907 (15.215281) U:0.987593 (19.063405) V:0.988912 (19.551593) All:0.976022 (16.201863) 112 (1.870) 293m
265 medium crf 20 SSIM Y:0.976580 (16.304193) U:0.990086 (20.037296) V:0.991165 (20.537863) All:0.981262 (17.272756) 20fps (0.338) 312m
av1(0.9) q10 cq 33 SSIM Y:0.969798 (15.199655) U:0.989949 (19.978082) V:0.990830 (20.376156) All:0.976662 (16.319346) 61.73fps (!!!) 244m
av1 10b q10 cq 33 SSIM Y:0.971108 (15.392260) U:0.991157 (20.533799) V:0.991940 (20.936862) All:0.977922 (16.560335) 49,61fps 240m
av1 (svt 0.9) q8 cq 30 (t:32?) SSIM Y:0.975766 (16.155816) U:0.991580 (20.747091) V:0.992393 (21.187620) All:0.981173 (17.252207) 27,76fps 272m
av1 (svt 0.9) q9 cq 30 (t:31?) SSIM Y:0.975084 (16.035293) U:0.991428 (20.669004) V:0.992255 (21.109547) All:0.980670 (17.137681) ~38,5fps 281m
av1 (svt 0.9) 10b q9 cq 30 (t:33?) SSIM Y:0.976477 (16.285137) U:0.992437 (21.213256) V:0.993174 (21.658392) All:0.981920 (17.428048) 31,5fps 280m
av1 (svt 0.9) q12 cq 30 SSIM Y:0.968763 (15.053263) U:0.989708 (19.875174) V:0.990632 (20.283502) All:0.975899 (16.179562) 104fps 350m
av1 (svt 0.9) 10b q8 cq 31 SSIM Y:0.976060 (16.208747) U:0.992308 (21.139492) V:0.993063 (21.588561) All:0.981602 (17.352254) 23,66ps 250m
av1 (svt 0.9) 10b q6 cq 33 SSIM Y:0.975336 (16.079315) U:0.992236 (21.099352) V:0.993001 (21.549539) All:0.981097 (17.234619) 9,84fps 200m

Synthése ( Mi 2021 )

Pour enregistrement visuellement sans perte:

264 s.fast CRF 11

Pour enregistrement avec une très bonne qualité:

264 s.fast CRF 22 ou 264 v.fast CRF 20

Pour rendu avec le meilleur rapport temps / compression:

???

Réglage relativement equivalent en qualité:

264: CRF 21, SLOW 265: CRF 21, MEDIUM VP9: CRF 33, SPEED 2 AV1: CQ 33, quality 8

Commandes exemples

ffmpeg -i "2021-07-21 21-45-44.mkv" -an -c:v libvpx-vp9 -b:v 0 -crf 33 -row-mt 1 -speed 2 "2021-07-21 21-45-44.vp9_33.mkv"

ffmpeg -i "2021-07-21 21-45-44.mkv" -an -c:v libx264 -crf 20 -preset veryfast "2021-07-21 21-45-44.264_vfast20.mkv"

ffmpeg -i "2021-07-21 21-45-44.mkv" -an -c:v libsvtav1 -qp 33 -preset 8 "2021-07-21 21-45-44.av1_33.mkv"

Petit classement

Encore une fois, a qualité égale:
Classement 2021:

Codec + Preset Taille Framerate
264 superfast 495 mb 160fps
264 veryfast 390 mb (s.fast:78%:1.4x plus efficace) 103fps (s.fast:64%: 1.7x plus lent)
264 slow 358 mb (s.fast:72%) 31fps (s.fast 19% (~5x plus lent))
264 veryslow 335 mb (s.fast: 68%: 1.7x plus effiface) 8fps (s.fast: 5%:20x plus lent )
vp9 preset 2 275 mb (s.fast: 1.9x plus efficace) 14fps (s.fast ~9x plus lent)
av1 SVT 8 235 mb (s.fast:47% 2.1x plus efficace) 10 fps (s.fast: 16x plus lent)

Classement 2022:

Codec + Preset Taille Framerate Rang
264 superfast 495 mb 160fps Vitesse + Compatibilité
264 veryfast 390 mb (s.fast:78%:1.4x plus efficace) 103fps (s.fast:64%: 1.7x plus lent) Vitesse + Compatibilité
av1 10b q11 357 mb (s.fast: 72%) 70fps (s.fast: 44% 2.2x plus lent) Vitesse
264 medium 366 mb (s.fast:74%) 49fps (s.fast:31%: 3.2x plus lent) Compromis Compatibilité
av1 10b q10 300 mb (s.fast: 60%) 52fps (s.fast: 32% 3.1x plus lent) Compromis Vitesse
av1 10bq9cq32 238 mb (s.fast: 48% 2.1x plus efficace) 34fps (s.fast: 21% :~5x plus lent) Compromis Compression
av1 10bq6cq34 178 mb (s.fast: 35% 2.9x plus efficace) 10fps (s.fast: 16x plus lent) Meilleur Compression

(A noté: VP9 et HEVC/265 se sont fait dégager pour le coup ...)

A propos de VP9

Divers essai:

Globalement, c'est toujours mieux que 264, mais est-ce que ça vaut vraiment le coup ?

A propos de AV1

Toujours en developpemenbt, donc difficile a dire mais :
SVT_AV1 mmême avec le réglage le plus bas, donne de très bon résultat, a la vitesse de 264 veryslow. Impressionnant.

A propos de 264

Reste malgré tout un bon codec, un peu vieux maintenant mais fait toujours le taf, surtout pour enregistrer en temps réele, ou un encodage rapide. Dans le pire des cas, c'est seulement 1.6x plus lourd que AV1, mais 10x plus rapide a encodé en veryfast.

En ajustant un peu, finalement, il n'y a pas de gain énorme sur les autres codec, en tout cas pour moi même en 2021, je reste en 264.

Pour les prests 264, petites notes:
ultrafast; Inutilisable. Vraiment, la qualité est degeulasse, et faut presque le triple en poids pour arriver en qq chose de correct ... oof.
superfast: Bien mieux ! Mais pése relativement lourd ! A utilisé dans le cas ou le pc en question est vraiment faiblard.
veryfast: La rapidité est toujours très bonne (même si un peu plus lent, forcément). Niveau poids du fichier, c'est 75% par rapport a superfast, pas mal !
faster à slow: OK la ça se corse, les gains ne sont plus aussi évident :/.
veryslow: Bien trop lent, même av1 est plus rapide, oof.

Un gagnant ?

x264 bien entendu. Oui forcément c'est pas le plus récent, pas le plus performant niveau ratio de compression, mais il est rapide, et le temps: c'est de l'argent ! Sans compté que la compatibilité de 264 en 2021 n'est plus a démontré, c'est simple: tout est compatible 264 !

En seconde position, c'est difficile a dire. VP9 est plus lent a l'encodage que 265 mais il est open source, et est relativement compatible sur les navigateur internet. 265 a une license avec royalties, et ça, c'est naze. Donc VP9 l'emporte mais de peu.

En derniere position AV1. Oui ok il est performant et tout, mais lent, et niveau compatibilité, même si on y arrive, en 2021, c'est toujours pas si bien que ça.

N'oublions pas: On est sur du 1080p. Imaginez les résultats avec des résolutions plus grande, surtout en terme de temps d'encodage ... ouais ... d'ailleurs:

Et la 4K ?

En fait, c'est la ou ça dérange. 264 peut faire du 4K, mais il est mauvais. C'est la ou VP9, 265 et AV1 peuvent complétement explosé 264. Mais en attendant, ça explose également le temps d'encodage ... et ouais ...

Le 10 et 12 bit:

Sur le tableau on peut voir que: sur 264, le 10 bit

Mise à jour Janvier 2022

Avec la mise à jour de SVT-AV1 en version 0.9, on perçoit une ENORME AMELIORATION ainsi que plus de réglage de compléxité.
L'encodeur est ainsi au niveau de 264 niveau vitesse, et plus performant que ce dernier !!!
Même 265 et vp9 se font explosé. Voir le tableau des résultats.

Par contre ça ne change pas le fait que la compatibilité n'est toujours pas au rendez vous, donc la conclusion reste la même, a moins d'archiver ou d'envoyer vos video sur youtube et de ne jamais les regarder en local, encodez encore en 264.