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é:
- h264 = libx264 (ffmpeg)
- h265 = libx265 (ffmpeg)
- vp9 = libvp-vp9 (ffmpeg)
- av1 = libsvtav1 (ffmpeg) Note: passé de 8bit a 10bit demande 2 de qc en plus pour un résultat équivalant. Encore 2 de plus lorsqu'on baisse d'un "q".
MaJ Janvier 2022:
- av1 svt 0.9 = svt-av1 0.9 (NEAV1E)
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:
- 2 pass : Trop lent, la seconde passe est bien trop lente, mais la premiere est très rapide. Etrange.
- SVT_VP9: Trop galere, faut compilé etc .. j'ai utilise WSL pour faire tourner un ffmpeg avec ce codec. Résultats peu concluant; trop long, mais c'est peut être du a WSL, je ne suis pas sur.
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.