Conversion vidéo HDR avec Handbrake : comment faire avec le CPU ou le GPU
Auparavant, les cassettes VHS, les CD et les DVD s'empilaient de manière disgracieuse. Aujourd'hui, les films UHD HDR occupent beaucoup de mémoire, jusqu'à 100 Go chacun. Ce qui permet d'y remédier : la conversion avec Handbrake.
Dans cet article, vous apprendrez comment convertir des vidéos UHD HDR en utilisant le codec High Efficiency Video Coding (H.265/HEVC) avec Handbrake (en anglais) et votre CPU ou GPU. Personnellement, je m'en sers pour réduire la taille des fichiers des copies rippées ou téléchargées de mes films avec une faible perte de qualité. Par exemple, réduire un fichier de film de 80 à 20 Go, de sorte que le résultat se situe quelque part entre la qualité du streaming et celle du fichier original.
Actuellement, mon programme préféré pour convertir les vidéos est Handbrake. Mais il a un inconvénient : si je veux convertir des vidéos HDR 10 bits (HDR : High Dynamic Range), je peux le faire avec mon processeur, mais pas en utilisant ma carte graphique, que je préfère depuis peu pour la conversion.
J'ai maintenant trouvé une solution ; les snapshot builds de Handbrake. Ces versions non finales du programme contiennent des fonctions qui, autrement, seraient (encore) absentes. Et donc aussi le support de la profondeur de couleurs de 10 bits lors de la conversion avec les cartes graphiques Nvidia GeForce. Toutefois, la profondeur de couleurs 12 bits ne peut toujours être convertie qu'avec le processeur. Et ceux qui espèrent une prise en charge de Dolby Vision ou HDR10+ resteront également sur leur faim. Vous pouvez certes utiliser les normes HDR améliorées comme source HDR grâce à la rétrocompatibilité, mais vous ne pouvez pas les convertir dans ces formats avec Handbrake.
Ce que Handbrake peut faire et quelle version vous devriez utiliser
Handbrake est un logiciel libre et open source de transcodage de fichiers vidéo. Il prend en charge les codecs vidéo (algorithmes de conversion) H.265 (HEVC), H.264 (AVC), MPEG-4, MPEG-2, VP9, VP8 et Theora. Lors de la conversion de HEVC et d'AVC, le programme peut recourir à l'accélération matérielle. Les conteneurs de fichiers pris en charge sont MKV, MP4 et WebM. De même, un grand nombre de codecs audio et de formats de sous-titres sont pris en charge. Ainsi, un passthrough audio, c'est-à-dire un passage de la piste sonore originale sans nouvelle conversion, est possible pour AC-3, E-AC3, FLAC, DTS, DTS-HD, TrueHD, AAC, MP3 et MP2. Si vous voulez réencoder la piste audio, vous pouvez le faire avec AAC ainsi que HE-AAC, MP3, FLAC, AC3, E-AC3, Opus et Vorbis.
Pour que vous n'ayez pas à faire tous les réglages vous-même, le programme vous propose des profils prédéfinis pour les vidéos web, le format Matroska, les encodeurs matériels ou un terminal spécifique. Ensuite, vous choisissez Android, Apple, Chromecast, PlayStation ou autre et la résolution souhaitée. Vous pouvez aussi tout configurer vous-même et convertir vos vidéos UHD avec une profondeur de couleurs allant jusqu'à 12 bits.
Vous pouvez télécharger Handbrake ici (en anglais) pour Windows, Linux et macOS. Comme ce convertisseur de médias est livré avec une interface graphique, son utilisation est confortable même pour les débutants.
Si, comme moi, vous souhaitez convertir des vidéos avec une carte graphique Nvidia récente plutôt qu'avec le processeur, vous aurez besoin d'un snapshot build de Handbrake pour que la conversion HDR 10 bits fonctionne avec le Nvidia Encoder (NVEnc). Il est disponible ici (en anglais). Veuillez n'utiliser cette version que sous votre propre responsabilité, car elle n'est pas encore définitive. De plus, pour que la puce supporte les 10 bits et les B-frames, vous devez posséder une GeForce GTX 1650 Super ou supérieure.
Ce que vous devez savoir avant de convertir votre premier film
Au début des années 2000, j'ai rippé des DVD et les ai convertis à une taille de 650 ou 700 mégaoctets. Ensuite, je les ai gravés sur des CD. À l'époque, mon PC calculait parfois jour et nuit pour convertir des films d'une résolution initiale de 720 x 576 pixels. Pour les nostalgiques, j'ai utilisé le codec DivX 3.11a et les logiciels SmartRipper et FlasKMPEG.
Aujourd'hui, la conversion d'un film peut encore prendre de nombreuses heures, voire des jours, en fonction du processeur et des réglages. Il existe toutefois des méthodes un peu plus rapides, mais qui n'offrent pas un résultat parfait en termes de qualité ou de taille de fichier. Mais un qui peut égaler la qualité des services de streaming et qui ne nécessite qu'une fraction du temps normalement nécessaire aux réglages d'encodage extrêmes.
Meilleure qualité et taille de fichier : encodage en 2 passes avec le processeur
Sur l'image suivante, vous pouvez voir les paramètres Handbrake de la conversion CPU basée sur le logiciel avec HEVC. Jusqu'à présent, je les utilisais pour mes films, car je ne savais pas à quel point j'aimais la conversion de la carte graphique de Nvidia. Et parce que la conversion avec le processeur offre un grand avantage : l'encodage en deux passes, c'est-à-dire l'encodage en deux fois.
Si vous voulez la meilleure qualité possible avec une taille de fichier la plus petite possible, l'encodage en 2 passes est ce qu'il vous faut. Le matériel vidéo est analysé dans un premier temps et les informations sont enregistrées dans un fichier journal. Pour simplifier, l'encodeur regarde par exemple où se trouvent les scènes de film rapides avec de nombreux changements d'image. Ceux-ci, tout comme les images avec beaucoup de détails ou un grain important, nécessitent plus de mémoire par seconde et donc un débit binaire plus élevé. Ainsi, lors du deuxième passage, où le nouveau fichier de film est écrit, il est toujours possible de viser le meilleur débit binaire cible par scène ou de respecter la capacité de mémoire cible et le débit binaire moyen envisagés.
La quantité de mémoire pouvant être utilisée par seconde de film est variable lors de l'encodage en 2 passes. Il en va de même lors de la conversion en un seule passe, en utilisant le débit binaire moyen. Et tout particulièrement lors de la conversion en une seule passe sur la base d'une valeur de qualité définie, où il n'y a pas de débit binaire prédéfini. Cependant, l'encodage à une passe est moins prédictif que l'encodage en deux passes, ce qui entraîne un fichier plus volumineux et/ou une qualité moins élevée.
Ce qui plaide contre l'encodage en deux passes : la conversion prend presque deux fois plus de temps. Vous peux y remédier en activant l'option turbo. Dans l'image en haut, on peut voir la coche « Accélérer la première passe ». Vous gagnez ainsi un peu de temps lors de la première passe au prix d'une perte de qualité pratiquement invisible. Chez moi, la conversion avec les réglages ci-dessus prend tout de même environ 140 minutes par heure de film. Soit cinq heures et demie pour Star Trek : le film* de 1979 en director's cut. Et ce, bien que j'utilise un Intel Core i7-12700K récent et que j'aie choisi le sixième meilleur ou le cinquième pire préréglage d'encodeur « Fast ».
Pour plus de détails sur les paramètres, voir le manuel étape par étape ci-dessous. Le débit binaire moyen de 20 000 kilobits par seconde choisi pour l'image a donné lieu à un fichier MKV de 24 Go. À l'origine, la piste vidéo pesait 74,7 Go et présentait un débit binaire moyen de 72,9 mégabits par seconde. La nouvelle piste vidéo a une taille de 20,5 Go et un débit binaire moyen de 20 mégabits par seconde.
Bonne qualité et grand gain de temps : encodage en une passe avec processeur ou carte graphique
Bien entendu, à part une ou deux passes, la qualité dépend toujours en grande partie du débit binaire. Un débit binaire suffisamment élevé permet de préserver la vidéo cible des artefacts inesthétiques. Chez Netflix, les films sont diffusés à des débits binaires allant jusqu'à 20 mégabits par seconde, en résolution UHD avec HDR10 et partiellement Dolby Vision. En revanche, un Blu-ray UHD peut atteindre 128 mégabits (16 mégaoctets) par seconde. Si vous êtes habitué à Netflix, Amazon Prime ou Disney+, un débit cible égal ou légèrement supérieur devrait théoriquement donner un bon résultat.
Si vous optez pour une conversion assistée par processeur en une seule passe, votre PC aura besoin d'environ la moitié du temps par rapport à un encodage en deux passes. Ce qui peut être encore un peu plus rapide, c'est la conversion avec une carte graphique. Intel, AMD et Nvidia proposent des encodeurs correspondants. Pour des raisons de qualité, je ne peux que recommander l'encodeur de Nvidia pour remplacer la conversion par le CPU. Et aussi uniquement avec le préréglage de l'encodeur « Slowest ». Ainsi, à partir d'un débit binaire moyen d'environ 15 mégabits par seconde, j'ai le sentiment que la qualité est au moins aussi bonne que celle de Netflix. Je trouve qu'elle est comparable au préréglage « Fast » lors d'une conversion CPU en une passe. Cependant, avec une Nvidia GeForce RTX 3080, la conversion ne prend qu'environ 30 minutes par heure de film.
Comment convertir vos vidéos HDR étape par étape
Après toute la théorie, il est temps de passer à la pratique. La version UHD HDR de Batman Begins sert d'exemple. Un fichier MKV d'une taille de 58 Go.
1. Démarrer le programme et ouvrir la source vidéo
Après avoir lancé Handbrake, vous pouvez ajouter une seule vidéo ou un dossier comme source.
2. Charger les préréglages et définir les conteneurs
Après avoir ouvert la source, vous accédez à l'onglet « Aperçu », où vous pouvez voir un aperçu du film et choisir le format ou le conteneur. Au-dessus, vous voyez un champ de sélection appelé « Préréglage », dans lequel les profils en question sont enregistrés. Il s'agit maintenant de choisir un profil plus ou moins adapté au résultat visé. Vous pouvez aussi tout régler vous-même sans profil, mais c'est plus rapide.
Choisissez le réglage par défaut « H.265 MKV 2160p60 » et ensuite un format. Personnellement, je mise toujours sur le conteneur MKV, car tous mes lecteurs supportent ce format et il est également au top. Vous pouvez vous représenter le MKV comme un conteneur dans lequel vous mettez la piste vidéo, les différentes pistes sonores et les sous-titres de votre choix. Si vous souhaitez éditer le fichier ultérieurement sans le reconvertir, c'est-à-dire changer une piste audio ou autre, cela est possible avec le logiciel MKVToolNix. Vous pouvez aussi choisir MP4 comme conteneur, ce qui est surtout recommandé pour les appareils Apple.
Veuillez également vous assurer que la case « passthrough des métadonnées » est cochée. Ensuite, vous définissez le nom et l'emplacement du fichier cible.
3. Définir la taille de l'image
Dans l'onglet « Taille de l'image », vous veillez à ce que la limite de résolution corresponde à votre objectif. Si vous voulez une résolution UHD, il doit y avoir « 2160p 4K Ultra HD ». Si vous avez chargé les paramètres par défaut lors de la deuxième étape comme proposé, tout devrait déjà être correctement configuré et ressembler à cette capture d'écran. D'ailleurs, si vous laissez le recadrage sur « Automatic », Handbrake supprimera automatiquement les barres noires au-dessus et en dessous de l'image, ce qui économise de la mémoire et est recommandé.
4. Filtres pouvant être appliqués en cas de besoin
Sous « Filtre », vous pouvez tout laisser sur « Off ». Sauf si vous savez ce que vous faites.
5.1 Paramètres d'encodage pour la conversion avec le processeur
Dans l'onglet « Vidéo », vous sélectionnez « H.265 10 bit » pour la conversion avec processeur dans l'encodeur vidéo. Si vous avez une source 12 bits, il y a aussi l'encodeur vidéo « H.265 12 bits ». Comme je ne vois personnellement pas de différence entre une profondeur de couleurs de 10 et 12 bits, je ne l'utilise pas encore. Et ce n'est pas non plus parce que cela prend plus de temps.
En dehors de l'encodeur vidéo, vous définissez « Same as source » pour la fréquence d'images, afin que les fps du fichier original soient repris. Sous Réglages de l'encodeur, vous pouvez régler la valeur de préréglage sur n'importe quelle position. Je recommande la valeur « Fast », car elle permet d'obtenir une bonne qualité dans un délai acceptable. Mais pour cela, vous devez aussi définir un débit binaire moyen suffisamment élevé. Celui-ci influence directement la taille finale du fichier. J'ai décidé de viser 15 000 kilobits par seconde en moyenne.
Vous pouvez aussi définir, à la place des paramètres en kilobits, une valeur CRF (Constant Rate Factor) au point « Qualité constante » et utiliser RF ou CQ au lieu de CRF. C'est de toute façon la meilleure méthode, car le matériel vidéo reçoit alors en permanence le débit binaire approprié sur la base d'une valeur de qualité, sans devoir respecter une valeur moyenne de stockage. Cependant, cela rend difficile l'estimation de la taille du fichier cible. En revanche, cette méthode garantit une meilleure qualité d'image lors des changements d'image rapides et lents. Pour la résolution UHD, une valeur CRF de 28-22 est recommandée dans la documentation Handbrake. Selon le degré d'action d'un film, une valeur inférieure à 22 peut également avoir du sens. Si je pense au film le plus génial de l'année, Everything Everywhere All at Once, je vais probablement lui attribuer une valeur de 18 après avoir reçu mon Blu-ray, en raison des changements d'image rapides qui provoquent presque l'épilepsie, et voir ce qui en résulte. Plus la valeur est petite, moins la compression est importante, plus la qualité est bonne et plus le fichier est grand.
Si, après avoir lu la théorie, vous avez décidé de procéder à un encodage ultra-long en deux passes, vous définissez un débit binaire moyen et vous cochez la case « Encodage en deux passes ». Si vous souhaitez effectuer l'encodage en une passe avec Turbo, vous devez également cocher la case « Accélérer la première passe ».
5.2 Paramètres d'encodage pour la conversion avec une carte graphique Nvidia
Pour la conversion avec une carte graphique Nvidia, vous sélectionnez « H.265 10-bit (NVEnc » dans l'encodeur vidéo. Pour la fréquence d'images, vous sélectionnez « Same as source », afin que les fps du fichier original soient repris. Dans les réglages de l'encodeur, vous devriez choisir « Slowest » pour la valeur de préréglage et en rester là. Il ne vaut pas la peine d'opter pour une variante plus rapide, car la valeur Slowest encode déjà relativement rapidement et offre la meilleure qualité.
Comme pour la conversion par le processeur, il est possible de définir une valeur de qualité de 0 à 51 ou un débit binaire moyen par défaut. Comme je l'ai déjà mentionné, je suis heureux avec un débit binaire moyen de 15 mégabits par seconde pour la plupart des films. Pour les films récents et ceux qui sont montés plus rapidement, il m'arrive de passer à 20 ou 25 mégabits. En ce qui concerne la valeur de qualité, j'ai fait des expériences similaires avec l'encodeur Nvidia que lorsque le processeur encode. Pour moi, une bonne valeur de départ est 23, même s'il m'arrive de descendre jusqu'à 18 en fonction du film.
Pour cet article, j'ai converti le film Batman en utilisant la valeur moyenne ainsi que les valeurs de qualité 23 et 18 : la valeur moyenne de 15 000 kilobits a abouti à un débit binaire moyen de 15 mégabits par seconde (15,8 Go de piste vidéo). Avec le CRF 23, on obtient un tout aussi bon résultat avec 14,3 mégabits par seconde (15 Go de piste vidéo). Avec CRF 18, ce sont 18,9 mégabits par seconde (19,9 Go de piste vidéo) et une image à peine différente de l'original. Tout cela peut toutefois varier en fonction du matériel cinématographique. La conversion a duré environ une heure et 15 minutes à chaque fois, 32 minutes par heure de film.
6. Sélectionner les pistes sonores et les convertir si nécessaire
On y est presque. Sous « Audio », vous pouvez ajouter la ou les pistes sonores via le menu déroulant « Pistes » et déterminer si elles doivent rester dans leur format d'origine ou être converties dans un autre.
Comme vous pouvez le voir sur la capture d'écran, j'ai ajouté une piste sonore en allemand et une en anglais. Ils sont disponibles en DTS-HD, ce qui n'est malheureusement pris en charge par pratiquement aucun de mes terminaux. Je leur ai donc attribué un nouveau codec. Je souhaite que les pistes sonores soient en Dolby Digital 5.1 après la conversion. Je choisis donc l'AC3, le meilleur débit binaire possible de 640 kilobits par seconde et des canaux 5.1.
Si vous voulez reprendre une piste sonore telle quelle, veillez à ce que le même codec soit sélectionné et que celui-ci soit suivi de la mention « Passthru » :
7. Sélectionner les sous-titres
Dans l'onglet « Sous-titres », vous ajoutez les textes souhaités via le menu déroulant « Pistes ». Vous ne devriez pas toucher à l'option Gravé. Celle-ci permet d'effectuer le rendu du texte directement dans l'image de la vidéo. Cela signifie que le texte apparaît alors également sans sélection de sous-titres lors de la lecture et ne peut plus être supprimé. L'option par défaut que j'ai définie pour le sous-titre avec le nom « German Forced » est plus utile. Le sous-titre forcé ne contient que des traductions de passages prononcés par des étrangers ou des indications de temps et de lieu dans le film. C'est pourquoi je veux qu'il soit activé par défaut, en accord avec la piste sonore par défaut, qui est également en allemand.
8. Démarrer la conversion et attendre
Enfin, vous pouvez maintenant appuyer sur le bouton vert en haut du programme et commencer l'encodage.
Avec un peu de chance, vous obtiendrez un résultat appréciable en quelques heures ou jours.
Le baiser quotidien de la muse stimule ma créativité. Si elle m’oublie, j’essaie de retrouver ma créativité en rêvant pour faire en sorte que mes rêves dévorent ma vie afin que la vie ne dévore mes rêves.