10.13 High Sierra HEVC (x265) sur High Sierra ?

Bonjour,

Pour ceux qui s'intéressent à la question, ci-après une information complémentaire concernant l'encodage HEVC avec iFFmpeg.

J'ai contacté les éditeurs du logiciel car il m'avait semblé qu'il n'encodait pas avec le Codec ID hvc1.

En fait, la dernière mise à jour permet bien la présence du codec ID hvc1 lorsqu'on encode en container .mov, codec H.265.

En revanche, l'encodage en container mp4 ne le permet pas. C'est toujours le codec ID hev1 qui est présent, donc pas lisible QuickTime.
Selon le staff de iFFmpeg, hev1 est la norme et ils ne font que respecter la norme, c'est Apple qui se singulariserait en utilisant hvc1. :
In fact, it isn't FFmpeg that's wrong either because hev1 is the correct FourCC for HEVC according the ISO guidelines.
Unfortunately, Apple decided to use hvc1 as the Four CC for HEVC. Up to now it is still unclear why they do this (although I have an good idea why .. :/ )

Toutefois, ils indiquent qu'en téléchargeant/installant la dernière mouture de ffmpeg (la 3.4), il est possible d'encoder directement en container mp4 avec le codec ID hvc1, juste en rentrant manuellement dans l'onglet Général, item FourCC : hvc1 menu déroulant sur Manually.
Il suffit alors d'enregistrer cette configuration comme préset.

Dans ces conditions, il est impressionnant de voir que du 1080 50p encodé en HEVC sans réglage (en automatique) voit son débit (donc son poids) divisé au minimum par 5 sans que l'on puisse déceler la moindre dégradation qualitative en lecture plein écran (j'ai un Retina 5K).
 
J'ajoute pour ceux qui comme moi encodent avec HandBrake en h.265, bien que la déclaration du codec ne soit pas encore la bonne, un passage dans Subler (penser à faire un nouveau fichier pour que cela fonctionne) permet si l'option est cochée dans les préférences avancées (HEVC: Force QuickTime Compatibility) de régler le soucis :).

Une fois le nouveau fichier obtenu (je laisse en .m4v pour ma part), la lecture avec Quick Look, QuickTime et iTunes se font sans problème. Il faut juste avoir une piste audio compatible comme du AAC, AC-3... Surtout pas de DTS, ou alors pas en piste principale.
 
J'ajoute pour ceux qui comme moi encodent avec HandBrake en h.265, bien que la déclaration du codec ne soit pas encore la bonne, un passage dans Subler (penser à faire un nouveau fichier pour que cela fonctionne) permet si l'option est cochée dans les préférences avancées (HEVC: Force QuickTime Compatibility) de régler le soucis :).

Une fois le nouveau fichier obtenu (je laisse en .m4v pour ma part), la lecture avec Quick Look, QuickTime et iTunes se font sans problème. Il faut juste avoir une piste audio compatible comme du AAC, AC-3... Surtout pas de DTS, ou alors pas en piste principale.
Bonjour Rick Infinity :coucou:

Intéressant cette information. Mais je me demande si l'ouverture du fichier issu de Handbrake par Hex Puis cmd-F>Chercher hev1 et Remplacer par hvc1>puis cmd-S pour enregistrer n'est-il pas préférable.
Car c'est instantané…
 
En effet, c'est bien plus rapide si c'est la seule manipulation sur le fichier à faire.

Pour ma part, je passe systématiquement par Subler pour nommer les pistes et ajouter mes metadata ou les récupérer de l'iTunes Store. Pour le coup je dois juste penser à ne pas ouvrir directement avec Subler mais faire un Cmd+N pour créer un nouveau fichier. C'est une fonctionnalité appréciable qu'il force le changement lorsqu'il reforme le container :^).

1510023340-subler.png
 
Un petit code Applescript pour rechercher et remplacer ‘hev1’ par ‘hvc1’ dans un fichier h265 Handbrake. Ça rame mais ça a l'avantage de pouvoir poser un paquet de fichiers sur l'applic et d'aller se coucher. Comme je suis loin d'être un spécialiste d'Applescript et que je n'avais pas écrit une ligne de code depuis 10 ans, ça doit sûrement pouvoir être optimisé notamment en arrivant à faire fonctionner les notifications au lieu du Mac qui parle et qui est très chiant.

Bloc de code:
on open theDroppedItems -- On pose un ou plusieurs fichiers sur l'icone de l'applic
    repeat with a from 1 to length of theDroppedItems
        -- chope les infos du fichier existant
        set theFile to item a of theDroppedItems
        set nom to theFile as text
        tell application "Finder"
            set parentFolder to container of theFile
            set parentFolderAlias to parentFolder as alias
            set extension to (name extension of theFile)
        end tell
        set parentFolderPath to POSIX path of parentFolderAlias
        set oldname to name of (info for theFile)
       
        -- on calcule le chemin du nouveau fichier
        set nomsansext to (text items 1 thru -5 of oldname) as text
        -- on ajoute " - h265" au nom du nouveau fichier
        set nouveaunom to nomsansext & " - h265." & extension
        set theNewFile to parentFolderPath & nouveaunom
        -- on remplace hev1 par hvc1
        set stringToFind to "hev1"
        set stringToReplace to "hvc1"
        -- display notification "Démarrage de " & nouveaunom sound name "Frog"
        -- le Mac dit "C'est parti", une notification serait plus appropriée
        -- mais je n'ai pas réussi à faire fonctionner deux notifications de suite
        -- une par fichier ou en début et fin d'encodage d'un fichier
        say "C'est parti"
        -- on lit le fichier et on remplace hev1 par hvc1
        set theContent to read theFile
        set {oldTID, AppleScript's text item delimiters} to {AppleScript's text item delimiters, stringToFind}
        set ti to every text item of theContent
        set AppleScript's text item delimiters to stringToReplace
        set newContent to ti as string
        set AppleScript's text item delimiters to oldTID
        -- nouveau fichier et sauvegarde
        try
            set fd to open for access theNewFile with write permission
            set eof of fd to 0
            write newContent to fd
            close access fd
            say "C'est bon"
        on error
            close access theNewFile
            say "C'est pas bon"
            -- notification marche pas
            -- display notification "Ça a merdé !" & return & theNewFile sound name "Basso"
        end try
        -- on met un tag de couleur sur le nouveau fichier pour pouvoir trier
        -- les anciens et les nouveaux fichiers
        tell application "Finder" to set label index of (POSIX file theNewFile as alias) to 5
    end repeat
end open
 
Bonjour cx3 :coucou:

Ton initiative est excellente.
Avec le développement de l'HEVC, on risque de trouver de plus en plus de vidéos encodées avec hvc1 qu'il serait en effet très pratique de modifier par lot à l'aide de ton script.

Même si le peu d'appareils de capture enregistrant en HEVC actuellement le font en hvc1 (iPhones bien sûr, GoPro 6, drone Phantom 4).

Mais étant tout sauf informaticien, je suis malheureusement incapable de le faire fonctionner. J'ai bien essayer de le copier dans Editeur de script et de l'enregistrer sur le bureau, mais rien ne s'est produit en posant un fichier encodé en hev1.

Si tu en la possibilité, pourrais-tu avoir la gentillesse de me guider pas à pas pour son utilisation ?:p

Je peux aussi te mettre au téléchargement un petit fichier pour te permettre d'effectuer des tests.;)
 
Dernière édition:
J'ai bien essayer de le copier dans Editeur de script et de l'enregistrer sur le bureau, mais rien ne s'est produit en posant un fichier encodé en hev1.

Il faut effectivement aller dans Editeur de script et enregistrer le ficher mais comme Application et non pas comme Script. Si tu as déjà enregistré le fichier comme script, ouvre le menu Fichier en maintenant la touche alt pour faire apparaître Enregistrer sous dans ce menu puis, dans format de fichier, choisi Application et ne coche pas les deux cases dessous.

Screen Shot 2018-03-02 à 14.41.26.jpg
 
Absolument génial, en quelques secondes, un petit fichier a été créé, du même poids que l'original, s'ouvrant alors dans QT X !

En revanche, un autre fichier de 580 Mo (contre 2,34 Go en H.264 et de qualité égale) dont je ne me souviens plus l'origine de l'encodeur qui l'a créé (Handbrake ? iFFmpeg ?), m'indique 'Une erreur de type -116 est survenue' avec deux boutons : Modifier et OK.
Si je clique sur modifier, cela ouvre Editeur de script.

Capture d’écran 2018-03-02 à 15.09.09.gif
 
Je viens d'encoder un autre fichier avec Handbrake. La dépose sur ton script l'a rendu immédiatement lisible par QT X.:up:

J'encode (toujours avec Handbrake) en ce moment un UHD 30 ips mp4 H.264 de 2,34 Go en HEVC. Je te dis comment cela se passe dès que c'est fini.

A noter que j'encode normalement avantageusement avec Compressor en hvc1, qui va 40 % plus vite que Handbrake ou iFFmpeg (lequel est capable lui aussi d'encoder en hvc1).
 
Heu, désolé mais je ne sais pas ce qu'est l'erreur -116 (pas trouvé sur le net). En revanche, le dialog vient bien d'AppleSCript qui n'arrive pas à finir son boulot et qui n'affiche pas l'erreur que j'ai programmé. Tu peux me donner des infos sur ce fichier ? Infos du finder ou mieux infos de IINA si tu as cette app.
 
error -116 memSCErr: Size Check failed

J'ai retrouvé la signification de l'erreur -116, mais j'avoue ne pas savoir l'interpréter dans le cadre du fonctionnement de ce script.
D'autant que c'est une erreur macOS, pas une erreur AppleScript.
 
Dernière édition:
Le fichier H.264 de 2,34 Go est passé à 525 Go en HEVC. Lecture en qualité au moins égale à l'original avec IINA.

Posé sur ton script, même message d'erreur. Serait-il possible qu'il soit question d'une histoire de poids de fichier ? Le message de remy:coucou: le laisserait supposer.

Voici les captures d'écran du module info de IINA :

Capture d’écran 2018-03-02 à 15.45.03.gif Capture d’écran 2018-03-02 à 15.45.23.gif Capture d’écran 2018-03-02 à 15.45.38.gif Capture d’écran 2018-03-02 à 15.45.49.gif
 
Voici l'analyse complète de ImediaHUD :
Bloc de code:
General
Count                            : 284
Count of stream of this kind            : 1
Kind of stream                    : General
Stream identifier                    : 0
Count of video streams                : 1
Count of audio streams                : 1
Video_Format_List                    : HEVC
Video_Format_WithHint_List            : HEVC
Codecs Video                        : HEVC
Audio_Format_List                    : AAC
Audio_Format_WithHint_List            : AAC
Audio codecs                        : AAC LC
Complete name                    : /Users/JLB/Desktop/4K-RX100-H.264.mp4
Folder name                        : /Users/JLB/Desktop
File name                            : 4K-RX100-H.264
File extension                        : mp4
Format                            : MPEG-4
Format/Extensions usually used        : mp4 m4v m4a m4b m4p 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma f4v
Commercial name                    : MPEG-4
Format profile                        : Base Media / Version 2
Internet media type                : video/mp4
Codec ID                            : mp42
Codec ID/Url                        : http://www.apple.com/quicktime/download/standalone.html
Codec                            : MPEG-4
Codec/Extensions usually used        : mp4 m4v m4a m4b m4p 3gpp 3gp 3gpp2 3g2 k3g jpm jpx mqv ismv isma f4v
File size                            : 500.2 MiB
Duration                            : 00:05:00.374
Overall bit rate mode                : Variable
Overall bit rate                    : 14.0 Mbps
Stream size                        : 239 KiB (0%)
Proportion of this stream            : 0.00047
HeaderSize                        : 36
DataSize                            : 524264704
FooterSize                        : 244801
IsStreamable                        : No
Encoded date                        : UTC 2018-03-02 14:25:34
Tagged date                        : UTC 2018-03-02 14:25:34
File last modification date            : UTC 2018-03-02 14:38:36
File last modification date (local)        : 2018-03-02 15:38:36
Writing application                    : HandBrake 1.0.7 2017040900

Video
Count                            : 274
Count of stream of this kind            : 1
Kind of stream                    : Video
Stream identifier                    : 0
StreamOrder                        : 0
ID                                : 1
Format                            : HEVC
Format/Info                        : High Efficiency Video Coding
Format/Url                        : http://www.itu.int
Commercial name                    : HEVC
Format profile                        : [email protected]
Internet media type                : video/H265
Codec ID                            : hev1
Codec ID/Info                        : High Efficiency Video Coding
Codec ID/Url                        : http://www.itu.int/
Codec                            : HEVC
Codec/CC                        : hev1
Codec profile                        : [email protected]
Duration                            : 00:05:00.300
Bit rate                            : 13.8 Mbps
Width                            : 1 920 pixels
Height                            : 1 080 pixels
Pixel aspect ratio                    : 1.000
Display aspect ratio                : 16:9
Rotation                            : 0.000
Frame rate mode                    : Constant
Frame rate                        : 29.970 fps
Frame count                        : 9000
Resolution                        : 8 bits
Colorimetry                        : 4:2:0
Color space                        : YUV
Chroma subsampling                : 4:2:0
Bit depth                            : 8 bits
Bits/(Pixel*Frame)                    : 0.222
Stream size                        : 494 MiB (99%)
Proportion of this stream            : 0.98777
Encoded date                        : UTC 2018-03-02 14:25:34
Tagged date                        : UTC 2018-03-02 14:25:34

Audio
Count                            : 222
Count of stream of this kind            : 1
Kind of stream                    : Audio
Stream identifier                    : 0
StreamOrder                        : 1
ID                                : 2
Format                            : AAC
Format/Info                        : Advanced Audio Codec
Commercial name                    : AAC
Format profile                        : LC
Codec ID                            : 40
Codec                            : AAC LC
Codec/Family                        : AAC
Codec/CC                        : 40
Duration                            : 00:05:00.374
Bit rate mode                        : Variable
Bit rate                            : 164 Kbps
Channel(s)                        : 2 channels
Channel positions                    : 2/0/0
ChannelLayout                    : L R
Sampling rate                        : 48.0 KHz
Samples count                    : 14417952
Frame count                        : 14080
Compression mode                : Lossy
Stream size                        : 5.88 MiB (1%)
Proportion of this stream            : 0.01176
Title                                : Stereo
 
error -116 memSCErr: Size Check failed

J'ai retrouvé la signification de l'erreur -116, mais j'avoue ne pas savoir l'interpréter dans le cadre du fonctionnement de ce script.
D'autant que c'est une erreur macOS, pas une erreur AppleScript.

En tout cas, ça a l'air d'être la taille du fichier qui est trop gros. Je me suis servi de ce script pour des h265 de 10 à 60 Mo maxi (mini clip vidéo), je n'ai pas testé sur un gros fichier. Je vais essayer.
 
Whaou, excellent toutes infos, je viens de revoir le sujet juste à l'instant car je pensais qu'il était mort...
En fait pas du tout !
Pour l'instant je suis au bureau donc pas trop le temps de lire tout mais des que j'ai un peu temps je vais potasser ça :)
 
Si tu veux, envoie moi un MP, je peux te mettre le fichier au téléchargement sur mon GoogleDrive…
 
Si tu veux, envoie moi un MP, je peux te mettre le fichier au téléchargement sur mon GoogleDrive…
Je vais paraître un peu bête mais comme j'ai dis plus haut j'ai survolé la discussion, je ne sais pas de quel fichier tu veux parler ? Peux tu m'en dire plus ?
 
Je vais paraître un peu bête mais comme j'ai dis plus haut j'ai survolé la discussion, je ne sais pas de quel fichier tu veux parler ? Peux tu m'en dire plus ?
Excuse moi, tu pouvais penser que cette proposition t'était adressée, elle était en fait à l'intention de cx3 pour lui permettre de peut-être trouver une solution au message d'erreur ci-avant évoqué…:)
 
Si tu veux, envoie moi un MP, je peux te mettre le fichier au téléchargement sur mon GoogleDrive…

Pas la peine, je viens de tester et si ça marche avec des fichiers de moins de 300 Mo, ça coince avec des fichiers plus gros. Soit ça sort l'erreur 116 pour les fichiers > 1 Go, soit pour des fichiers de 4-500Mo, le script va jusqu'au bout, crée le nouveau fichier, mais rien n'est écrit dans le fichier : zéro octet !

Comme dit plus haut, je ne suis pas un spécialiste d'Applescript et je ne comprends pas. Il y a un cador en Applescript dans la salle ?
 
Excuse moi, tu pouvais penser que cette proposition t'était adressée, elle était en fait à l'intention de cx3 pour lui permettre de peut-être trouver une solution au message d'erreur ci-avant évoqué…:)
Ah :banghead: Autant pour moi !
Pas de problèmes !
Sinon en conclusion du coup est il possible de lire correctement du h265 sur mac avec proc de 6eme génération ? sur un certain conteneur le mov et le codec hev1 :) J'espere pas dire de conneries ^^