Comment VMAF m’aide à mesurer la qualité de mes encodages vidéo

Dans mon article précédent, “FFmpeg & HandBrake : pourquoi j’ai laissé tomber l’ABR pour la qualité constante (CRF)”, je vous expliquais comment j’ai abandonné le débit moyen (ABR) au profit de la qualité constante (CRF) pour mes encodages vidéo. Mais une question restait en suspens : comment savoir si mon encodage est vraiment bon ? C’est là que VMAF entre en jeu. Dans cet article, je vous présente cette métrique qui a changé ma vision du transcodage vidéo. Grâce à elle, j’ai pu mesurer objectivement la qualité de mes vidéos. Si vous encodez des vidéos sans vérifier vos résultats, vous passez à côté d’un outil qui pourrait révolutionner votre approche !

Qu’est-ce que VMAF ?

VMAF (Video Multi-Method Assessment Fusion), est une métrique développée par Netflix, en collaboration avec des partenaires universitaires prestigieux : l’Université de Southern California (USC), où C.-C. Jay Kuo a initié des travaux sur la fusion de métriques de qualité vidéo via des machines à vecteurs de support (SVM), l’Université de Nantes (IPI/LS2N), et l’Université du Texas à Austin (LIVE). Netflix a formalisé cette approche et, en juin 2016, a lancé VMAF en open-source via son blog technique. Cette métrique donne une note de 0 à 100 à votre vidéo : 100, c’est identique à la source ; 0, c’est une catastrophe pixellisée. Ce qui rend VMAF génial, c’est qu’il imite ce que l’œil humain voit, en combinant des algorithmes intelligents (apprentissage automatique, SSIM, PSNR) pour évaluer la fidélité visuelle. Pas besoin d’être un expert pour l’utiliser, mais il faut FFmpeg, car HandBrake ne le prend pas en charge nativement.

Comment VMAF fonctionne-t-il ?

VMAF compare chaque image de votre vidéo encodée à celle de la source, pixel par pixel, pour repérer les différences que l’œil humain pourrait remarquer. Il ne s’agit pas d’une comparaison binaire (comme vérifier si deux fichiers sont identiques bit pour bit), mais d’une évaluation de la qualité perçue. Par exemple, une légère recompression peut techniquement modifier des pixels sans que vous le voyiez. VMAF traduit cela en un score unique, agrégé sur toute la vidéo, qui reflète ce que vous ressentez en regardant.

Un score de 100 signifie que la vidéo est visuellement indiscernable de la source, même si, techniquement, les fichiers ne sont pas identiques (pas un clone parfait au niveau des bits). À 90-100, comme le score de 95 que j’ai obtenu sur mes encodages, les différences sont quasi imperceptibles, sauf peut-être dans des scènes ultra-détaillées (pensez à une course-poursuite avec du grain filmique). À 80-90, vous pourriez repérer du flou ou des artefacts dans des moments complexes. En dessous de 80, la qualité devient discutable, et en dessous de 70, c’est souvent inacceptable pour un passionné comme moi.

Mon expérience avec VMAF

Quand j’ai encodé une vidéo (Blu-ray 1080p) en AV1 avec le codec SVT-AV1, j’ai testé plusieurs valeurs CRF : 22, 26, et 32. Avec FFmpeg, j’ai comparé mes fichiers encodés à la source HEVC, et là, surprise : RF 22 et 26 m’ont donné un score VMAF de 95 ! Cela signifie que même à RF 26, plus compressé, la qualité était pratiquement identique à RF 22, avec des fichiers plus petits. Pour RF 32, je m’attends à une baisse (probablement vers 80-90), car les scènes d’action comme les courses risquent de montrer des artefacts. Ce score de 95 m’a prouvé que CRF, combiné à VMAF, est une méthode imbattable pour optimiser la qualité sans gaspiller d’espace disque.

Ces tests m’ont convaincu que VMAF est essentiel pour trancher entre plusieurs encodages. Sans lui, je serais resté à tâtonner, zoomant sur des scènes pour deviner si mon encodage était bon. VMAF m’a donné une mesure objective, et franchement, je ne peux plus m’en passer.

Interpréter les scores VMAF

Voici comment je vois les scores VMAF, après des heures à encoder et comparer :

  • 90-100 (excellente): Quasi-identique à la source. Mon score de 95 pour RF 22/26 montre que les vidéos sont nettes, même dans les poursuites ou les scènes sombres. Parfait pour l’archivage ou le streaming 1080p.
  • 80-90 (bonne): Quelques artefacts dans les scènes complexes (ex. : flou sur le grain filmique). C’est probablement ce que RF 32 donnera, acceptable pour des usages moins exigeants.
  • 70-80 (moyenne): Artefacts visibles, surtout dans l’action. À éviter si vous visez la qualité.
  • <70 (médiocre): Qualité dégradée, flou ou blocage évident. À réserver pour les cas où la taille compte plus que tout.

Petite nuance : un score élevé dépend du contenu. Ma vidéo de référence, avec ses dialogues et ses plans extérieurs, est plus facile à compresser qu’un film d’action moderne en 4K. Si votre source est déjà compressée (comme mon fichier HEVC), le score maximal peut être limité. Et non, un score de 100 ne veut pas dire que les fichiers sont techniquement identiques – juste que vos yeux ne verront pas la différence.

Attention aux résolutions

Un piège que j’ai découvert : VMAF exige que les deux vidéos comparées aient la même résolution. Si vous avez supprimé les bandes noires dans votre encodage (par exemple, en passant de 1920×1080 à 1920×800 pour enlever les bordures noires), VMAF ne fonctionnera pas directement. Il faudra utiliser des filtres FFmpeg comme scale, crop, ou pad pour aligner les vidéos. Pour éviter les complications, je recommande de comparer des vidéos de résolutions similaires. Si vous voulez en savoir plus, jetez un œil à la documentation FFmpeg ou au projet VMAF de Netflix.

Comment utiliser VMAF

Pour utiliser VMAF, vous aurez besoin de FFmpeg avec le support de libvmaf (installez-le via Homebrew sur macOS : brew install ffmpeg). Voici une commande simple que j’utilise :

ffmpeg -i encoded.mkv -i reference.mkv -filter_complex "[0:v][1:v]libvmaf=log_path=vmaf_results.json:log_fmt=json" -f null -

Cette commande compare votre vidéo encodée à la source et enregistre les résultats dans un fichier JSON. Pour voir le score moyen, utilisez :

cat vmaf_results.json | jq '.pooled_metrics.vmaf.mean'

Si elles diffèrent, vous devrez ajuster avec des filtres, mais pour rester simple, encodez vos vidéos dans la même résolution que la source.

Pourquoi VMAF est un game-changer

Je vais être direct : si vous encodez des vidéos sans utiliser VMAF, vous ratez une occasion en or. Mes tests avec CRF 22 et 26 sur AV1 m’ont montré que je pouvais compresser davantage sans perdre en qualité, un résultat que je n’aurais jamais validé à l’œil nu. VMAF m’a donné la confiance pour abandonner l’ABR, qui donnait des résultats inconstants (flou dans les scènes d’action, gâchis de bits ailleurs). Avec VMAF, vous savez exactement où vous en êtes, et ça, c’est libérateur pour un passionné comme moi.

Conclusion

VMAF a transformé ma façon d’encoder des vidéos. En me donnant un score objectif, il m’a permis de valider mes choix de CRF et d’optimiser mes fichiers sans sacrifier la qualité. Oui, il faut s’assurer que les résolutions des vidéos sont identiques, mais une fois ce détail réglé, VMAF est un outil puissant et accessible. D’autres métriques existent, comme PSNR ou SSIM, mais VMAF est souvent considéré comme le plus proche de la perception humaine. Dans un futur article, j’explorerai probablement un moyen encore plus simple de comparer qualitativement deux vidéos, pour rendre cette analyse à la portée de tous.


Écrivez quelques éclats d'âme...

Dans l'ombre vacillante d'une chandelle, où les murmures du vent se mêlent aux secrets d'un vieux parchemin, je vous invite à tisser une toile de mots. Écrivez quelques éclats d'âme – rêve, étoile, abîme, étreinte, brume – et laissez-les danser sur la page, comme des lucioles dans une nuit d'encre. Que diriez-vous de les entrelacer dans une phrase, un souffle, une histoire ?

S’abonner
Notification pour
guest
0 Commentaires
Le plus ancien
Le plus récent Le plus populaire
Commentaires en ligne
Afficher tous les commentaires