FFmpeg & HandBrake : pourquoi abandonner l’ABR pour la qualité constante (CRF)
En tant que passionné de vidéo et apprenant autodidacte dans le domaine du transcodage, j’ai passé pas mal de temps à explorer des outils comme HandBrake et FFmpeg pour encoder mes vidéos. Mon objectif ? Obtenir la meilleure qualité possible tout en gardant des fichiers de taille raisonnable. Au début, je me suis souvent tourné vers le réglage du débit moyen (Average Bitrate, ou ABR), mais après plusieurs tests et quelques erreurs, j’ai réalisé que la qualité constante (Constant Quality, ou CRF) est presque toujours le meilleur choix. Dans cet article, je partage mon expérience et explique pourquoi je recommande la qualité constante, avec des exemples tirés de HandBrake et FFmpeg.
Mon parcours avec le transcodage vidéo
Quand j’ai commencé à encoder des vidéos, je ne maîtrisais pas grand-chose. J’utilisais HandBrake pour sa simplicité, mais je me perdais dans les options comme le débit moyen ou la qualité constante. Par curiosité, j’ai aussi expérimenté avec FFmpeg, un outil plus puissant mais plus complexe. Mes premiers encodages laissaient clairement à désirer. J’avais tendance à fixer un débit moyen en divisant arbitrairement le bitrate de la source (par exemple, un fichier AVC à 12 Mbps devenait 3 Mbps en AV1). Mais les résultats étaient inégaux : certaines scènes semblaient floues, tandis que d’autres gaspillaient des bits sur des plans statiques. C’est en testant la qualité constante que j’ai eu un déclic. Ce mode a transformé ma façon d’encoder.
Qualité constante vs débit moyen : les bases
Pour comprendre mon choix, clarifions ces deux modes :
- Qualité constante (CRF) : Ce réglage permet de définir un niveau de qualité visuelle via une valeur RF (Rate Factor) dans HandBrake ou
-crf
dans FFmpeg. Une valeur RF plus basse (ex. : 18) donne une meilleure qualité, mais des fichiers plus gros, tandis qu’une valeur plus haute (ex. : 24) réduit la taille au détriment de la qualité. L’encodeur ajuste automatiquement le débit binaire en fonction de la complexité des scènes, garantissant une qualité stable, mais la taille du fichier final est moins prévisible. Notez que CRF n’est pas standardisé : un CRF de 20 n’a pas la même qualité perçue en x264 qu’en AV1, car chaque codec a son propre barème de qualité.. - Débit moyen (ABR) : Avec ce mode, vous fixez un débit binaire cible (ex. : 5000 kbps). L’encodeur répartit les bits pour respecter cette moyenne sur toute la vidéo. Cela permet de contrôler la taille du fichier, mais la qualité peut varier : les scènes complexes (avec beaucoup de mouvement ou de détails) risquent d’avoir des artefacts comme du flou, tandis que les scènes simples peuvent utiliser trop de bits inutilement.
Certains confondent ABR avec le VBR (Variable Bitrate) en deux passes. Ce dernier est plus précis qu’ABR, car il analyse la vidéo en deux étapes pour mieux répartir les bits, mais il reste moins flexible et plus lent que CRF dans la plupart des cas.
Voici un tableau récapitulatif des différences clés :
Critère | Qualité constante (CRF) | Débit moyen (ABR) |
---|---|---|
Qualité visuelle | Uniforme, optimisée | Variable |
Taille de fichier | Variable | Prévisible |
Vitesse d’encodage | Plus rapide (1 passe) | Plus lent (2 passes) |
Facilité de réglage | Très simple (RF/CRF) | Nécessite des calculs |
Cas d’usage typique | Archivage, usage général | Streaming, stockage limité |
Pourquoi je choisis la qualité constante
Après avoir encodé des dizaines de vidéos et comparé les résultats, voici les raisons qui me font privilégier la qualité constante.
1. Une qualité visuelle uniforme
Le principal atout de CRF est de maintenir une qualité homogène. Avec HandBrake, j’ai testé un encodage en RF 20 (x264) et un autre en débit moyen à 4000 kbps pour une vidéo 1080p. Avec CRF, les scènes dynamiques restaient nettes, et les scènes statiques ne gaspillaient pas de bits. En revanche, avec ABR, les scènes complexes montraient des artefacts visibles.
FFmpeg m’a donné des résultats comparables avec cette commande :
ffmpeg -i input.mp4 -c:v libx264 -crf 20 -preset medium output.mp4
Comparé à :
ffmpeg -i input.mp4 -c:v libx264 -b:v 4000k -preset medium output.mp4
CRF offrait une qualité plus stable, sans sacrifier les détails.
2. Encodage plus rapide
CRF utilise un encodage en une seule passe, ce qui est plus rapide qu’ABR, souvent en deux passes. Encoder une vidéo d’une heure en RF 20 prenait environ 30 minutes sur mon Mac, contre presque une heure pour ABR à 4000 kbps. Dans FFmpeg, -crf 20 -preset fast
m’a permis des tests rapides et de qualité.
3. Taille de fichier optimisée
CRF alloue intelligemment les bits : moins pour les scènes simples, plus pour les complexes. Une vidéo en RF 22 était 25 % plus petite qu’en ABR à 4000 kbps, avec une qualité indiscernable. Dans FFmpeg, -crf 22
donnait des fichiers plus compacts et nets que -b:v 4000k
.
4. Simplicité pour les débutants
CRF est intuitive : dans HandBrake, un curseur RF suffit. Pour du 1080p, RF 20-22 est un bon départ. Dans FFmpeg, -crf 20
est simple et efficace. Avec ABR, estimer le bitrate était frustrant et donnait des résultats inconstants.
5. Soutenu par les experts
La documentation de HandBrake et les forums comme Reddit recommandent CRF pour sa qualité et sa simplicité. Les encodeurs modernes (x264, x265, AV1) sont optimisés pour ajuster dynamiquement le débit avec CRF.
Quand utiliser le débit moyen ?
ABR est utile dans des cas spécifiques :
- Taille de fichier fixe : Pour cibler une taille précise (ex. : stockage limité).
- Streaming adaptatif : Des protocoles comme HLS ou DASH préfèrent des segments avec débit constant pour gérer les transitions de qualité selon la bande passante. Cela garantit une diffusion fluide sur des réseaux variables.
Mais ces besoins restent relativement spécifiques. Dans mes tests, ABR donnait des résultats décevants, surtout avec des codecs comme AV1.
Conseils pratiques pour HandBrake et FFmpeg
Voici quelques astuces pour bien utiliser CRF :
- Dans HandBrake :
- Commence avec les préréglages officiels (ex. : “Fast 1080p30”), qui utilisent CRF.
- Pour du 1080p, vise RF 18-22 (x264) ou 20-24 (x265). Pour du 720p, 22-24.
- Pour les anime, baisse à RF 16-18 pour préserver les détails.
- Teste avec une courte séquence avant l’encodage complet.
- Dans FFmpeg :
- Utilise
-crf 20
pour x264/x265 en 1080p,-crf 24
pour AV1. - Ajoute
-preset medium
pour qualité/vitesse, ou-preset fast
pour rapidité. - Exemple x264 :
ffmpeg -i input.mp4 -c:v libx264 -crf 20 -preset medium -c:a aac -b:a 128k output.mp4
- Pour AV1 :
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 24 -preset 6 -c:a aac -b:a 128k output.mp4
- Utilise
- Avec AV1, CRF est particulièrement efficace, mais plus lent. Par exemple, avec
libsvtav1
, un CRF de 24-28 donne des fichiers très compacts tout en préservant une excellente qualité pour du 1080p. Cependant, attends-toi à des temps d’encodage plus longs qu’avec x264 ou x265, surtout sur des presets lents (ex. :-preset 4
). Teste sur une courte séquence pour ajuster CRF selon ton matériel.
Note que CRF ne contrôle que la qualité vidéo. L’audio doit être configuré séparément, comme dans les exemples ci-dessus. - Vérifie la qualité : Utilise des outils d’analyse via FFmpeg.
En bref !
Après des mois d’encodages et de comparaisons, je suis convaincu que CRF est la meilleure option pour la plupart des projets. Elle offre qualité, optimisation, et simplicité. ABR a ses usages, mais m’a souvent déçu. Dans un futur article, je présenterai un outil pour comparer qualitativement deux vidéos, pour vérifier tes encodages avec précision. En attendant, essaye CRF avec RF 20 et ajuste selon tes besoins.
Laisser un commentaire