Le support parfois compliqué du HEVC et des Mac

Avec iOS 11 et macOS High Sierra, Apple prend (enfin) en charge le codec HEVC (H.265). Mais il y a quelques petites contraintes importantes à prendre en compte pour vraiment en profiter.

Premièrement, la compatibilité matérielle.

Sous iOS, tous les appareils peuvent lire du HEVC, mais seuls les appareils avec un A9 (et plus, à partir de l’iPhone 6S/SE) le font matériellement. En pratique, un Apple TV avec un A8 arrive à lire sans soucis du 1080p, mais pas de l’Ultra HD. Les appareils en A10 et A11 permettent même de filmer en HEVC.

Sous macOS, même chose. Un gros Core 2 Duo ou (évidemment) un Core i5 arrive à lire sans soucis du 1080p en HEVC si le débit n’est pas trop élevé, mais seuls les Mac de 2016 et 2017 le font matériellement. Les modèles en Skylake (2016) décodent uniquement les vidéos en 8 bits, ceux de 2017 supportent aussi le 10 bits. La principale différence entre le décodage logiciel et le décodage matériel vient évidemment de l’usage du processeur : en décodage matériel, le CPU ne fait presque rien et regarder un film sur batterie ne pose pas de soucis, ce qui n’est pas le cas en décodage logiciel.

Du HEVC dans QuickTime

En pratique, je conseillerais quand même de se limiter dans la mesure du possible aux machines qui décodent matériellement, et de rester en H.264 sur les autres.

Deuxièmement, la partie logicielle.

Comme d’habitude, macOS ne reconnaît pas les conteneurs classiques (MKV…) mais se contente du MP4/M4V. Mais même dans ce cas-là, QuickTime (et plus généralement l’OS) peut refuser de lire un fichier encodé en HEVC. La raison vient d’un simple identifiant dans le fichier, le FourCC. Pour faire simple, Apple attend le code hvc1 dans le fichier, et pas mal de fichiers utilisent le code hev1. La différence entre les deux est assez ténue, le premier implique qu’il y a bien du HEVC, le second qu’il y a peut-être du HEVC.

QuickTime n’aime pas les MP4 avec du hev1

Actuellement, les fichiers sur le Net utilisent plutôt le second code et des encodeurs comme HandBrake aussi, donc macOS n’accepte pas d’ouvrir les fichiers.

Dans les solutions, la première consiste à utiliser des logiciels à jour. Subler 1.3.7 pour le passage du MKV au MP4, HandBrake en Nightly Builds pour l’encodage en HEVC et MP4. La seconde consiste à prendre un éditeur hexadécimal et à remplacer le hev1 dans le code par hvc1.

La modification à l’arrache

Je suppose que d’ici quelques jours/semaines, tous les logiciels seront à jour pour utiliser le bon code FourCC.