# Guide d'encodage FFmpeg et H.265 {{INLINETOC}} **ffmpeg** prend en charge le codage H.265 / HEVC à l’aide du codeur x265. libx265 peut offrir une économie de débit de 25 à 50% par rapport à la vidéo H.264 codée avec libx264, tout en conservant la même qualité visuelle. Ces gains seront plus prononcés aux résolutions de 1080p et plus. # Obtenir ffmpeg avec le support libx265 **ffmpeg** doit être construit avec l'indicateur de configuration `--enable-gpl --enable-libx265` et nécessite l'installation de **x265**. On peut également télécharger une version statique, qui regroupe tous libx265. # Encodage Semblable à x264, le codeur x265 dispose de plusieurs algorithmes de contrôle de débit, notamment: * Débit binaire cible en une passe (en définissant -b:v) * Débit binaire cible à 2 passes * Facteur de taux constant (CRF) Cet article se concentre sur les codages CRF et à deux passes, car le codage à débit binaire cible à une passe n'est pas recommandé. ## Facteur de taux constant (CRF) Utiliser ce mode si pour conserver une bonne qualité visuelle sans se soucier du débit exact ou de la taille du fichier encodé. Le mode fonctionne exactement comme dans x264. ### Réglages Comme avec x264, il faut faire deux choix: * Choisir un CRF. La valeur par défaut est **28** et il devrait correspondre visuellement au CRF 23 de l'encodage libx264 , mais donner lieu à environ la moitié de la taille du fichier. En dehors de cela, CRF fonctionne exactement comme dans x264. * Choisir la vitesse d'encodage, par défaut la valeur est **medium**. Le préréglage détermine la rapidité du processus d’encodage aux dépens des détails. En d'autres termes, si on choisit le mode **ultrafast**, le processus de codage va s'exécuter rapidement et la taille du fichier sera plus petite que celle du fichier moyen. La qualité visuelle ne sera pas aussi bonne. Les préréglages plus lents utilisent plus de mémoire. Les préréglages valides sont **ultrafast**, **superfast**, **veryfast**, **faster**, **fast**, **medium**, **slow**, **slower**, **veryslow** et **placebo**. * Choisir la mise au point, par défaut, cette option est désactivée et il n'est généralement pas nécessaire de définir une option de réglage. x265 prend en charge les options suivantes: **psnr**, **ssim**, **grain**, **zerolatency**, **fastdecode**. Ils sont expliqués dans le guide H.264. ### Exemple d'encodage CRF ``` ffmpeg -i input -c:v libx265 -crf 28 -c:a aac -b:a 128k output.mp4 ``` Cet exemple utilise l'audio AAC à 128 Kbits/s. Ceci utilise l'encodeur interne ffmpeg, mais sous AAC. ## Encodage à deux passes Cette méthode est généralement utilisée lorsqu'on cible une taille de fichier de sortie spécifique et que la qualité de la sortie d'une image à l'autre est de moindre importance. ### Calcul du débit Par exemple, pour une vidéo de 10 minutes (600 secondes) et une sortie de 200 Mio `débit = taille du fichier / durée`: ``` (200 MiB * 8192 [convertit les MiB en kBit])/600 secondes=~2730 kBit/s 2730 - 128 kBit/s (débit binaire audio souhaité)=2602 kBit/s débit binaire ``` ### Exemple d'encodage à deux passes Pour deux passes, il faut exécuter ffmpeg deux fois, avec presque les mêmes paramètres, à l'exception de: * Dans les passages 1 et 2, utiliser les options `-x265-params pass=1` et `-x265-params pass=2`, respectivement. * Dans l'étape 1, spécifier la sortie dans un descripteur de fichier null, pas un fichier réel. (Cela générera un fichier journal dont ffmpeg a besoin pour la deuxième passe.) * Dans l'étape 1, spécifier un format de sortie (avec `-f`) qui correspond au format de sortie que l'on utilisera dans l'étape 2. * Dans le premier passage, on peut laisser la sortie audio en spécifiant `-an`. ``` ffmpeg -y -i input -c:v libx265 -b:v 2600k -x265-params pass=1 -an -f mp4 /dev/null && \ ffmpeg -i input -c:v libx265 -b:v 2600k -x265-params pass=2 -c:aac -b:a 128k output.mp4 ``` Pour **libx265**, l'option `-pass` (que l'on utilise pour **libx264**) n'est pas applicable.\\ \\ Les utilisateurs Windows doivent utiliser NUL au lieu de `/dev/null` et `^` au lieu de `\`. Comme avec CRF, choisir le paramètre le plus lent que l'on puisse tolérer et éventuellement appliquer un paramètre `-tune`. Lorsqu'on utilise des préconfigurations plus rapides avec le même débit cible, la qualité obtenue sera inférieure et inversement. ### Options de passage Généralement, les options sont passées à x265 avec l'argument `-x265-params`. Pour affiner le processus de codage, on peut donc transmettre toute option répertoriée dans la documentation x265. Mais il n'est généralement pas nécessaire de peaufiner les options, sauf si on sait qu'il faut changer.