Aller au contenu

Le format ASC MHL

ASC MHL est le format Media Hash List (liste de hachage de médias) de l'American Society of Cinematographers. MediaCopy 3000 lit et écrit la version 2.0 de ce format. Cette page traite de la partie du format utilisée dans cette application. La spécification officielle fait autorité.

La structure des dossiers

Chaque destination reçoit une copie du dossier source des médias. À l'intérieur de cette copie se trouve un dossier ascmhl :

<destination>/CARD_A001/…les fichiers…
<destination>/CARD_A001/ascmhl/ascmhl_chain.xml
<destination>/CARD_A001/ascmhl/0001_CARD_A001_2026-09-12_140300.mhl
<destination>/CARD_A001/ascmhl/0002_CARD_A001_2026-09-13_091500.mhl

Le nom du fichier manifeste contient le numéro de génération, le nom du dossier, la date et l'heure.

Le dossier ascmhl est inclus dans la copie. Il contient les générations de la source ainsi que la génération propre à l'opération de transfert en cours.

La chaîne

Le fichier ascmhl_chain.xml énumère toutes les générations dans l'ordre. Pour chacune d'elles, il contient un hash c4 du fichier manifeste lui-même.

Le format c4 est imposé par la spécification pour cet usage précis ; il n'est donc jamais modifiable ni variable, quel que soit le format de hachage utilisé pour les fichiers eux-mêmes.

Un manifeste

Un manifeste décrit l'arborescence dans laquelle il se trouve. Pour chaque fichier, il enregistre le chemin, la taille, le hash et l'action effectuée sur le fichier lors de l'opération :

ActionSignification
originalIl s'agit des premiers hashs générés pour ce fichier.
verifiedLe hash correspondait à un enregistrement existant.
failedLe hash ne correspondait pas à l'enregistrement.

MediaCopy 3000 écrit ces trois valeurs, et aucune autre. Son lecteur accepte également new — une valeur écrite par d'anciens outils — et l'interprète comme verified.

Un manifeste consigne également les hashs des répertoires : un hash de contenu et un hash de structure pour chaque répertoire, ainsi qu'une paire pour la racine. L'annexe G de la spécification décrit comment ces valeurs sont agrégées à partir des éléments enfants. La paire racine constitue le roothash de l'arborescence.

Les entrées suivent l'ordre indiqué dans la section 6.5 de la spécification. Pour chaque répertoire, le manifeste consigne ses sous-répertoires, puis ses propres fichiers, et enfin le répertoire lui-même. La racine ne possède pas d'entrée propre.

Processus d'une génération

Chaque génération indique l'opération effectuée :

ProcessusÉcrit par
in-placeUne opération de scellement (seal) et une vérification (verify)
transferLe côté destination d'un transfert (offload)
flattenNon écrit par cette application

Le format ne prévoit pas de processus verify spécifique. C'est pourquoi une génération de vérification est consignée sous le type in-place.

Formats de hash

FormatMediaCopy 3000
xxh64Écrit pour chaque nouvelle tâche et lu
md5Lu ; continue d'être écrit pour un dossier déjà enregistré avec ce format
sha1Lu ; continue d'être écrit pour un dossier déjà enregistré avec ce format
c4Utilisé uniquement pour la chaîne

Une tâche utilise un format unique pour tous les fichiers qu'elle traite. Ce format est déterminé par les enregistrements servant de référence pour la tâche ; il n'est jamais choisi manuellement. Si les enregistrements contiennent plusieurs formats, la tâche s'interrompt en raison du blocage : hash format cannot be settled (format de hash indéterminable). ## Lecture d'un manifeste sans cette application

Les fichiers sont au format XML et sont conçus pour perdurer au-delà de tout outil spécifique. D'autres outils ASC MHL sont capables de lire les fichiers générés par MediaCopy 3000. La suite de tests de conformité présente dans ce dépôt vérifie cette compatibilité en la comparant à l'outil de référence ASC, ascmhl.