Source Package

Références SMPTE 377-1-2011 - MXF - File Format Specification
Chapitre 9.5.4 - Source Package P67
Chapitre E.2 - Source Package P139
Modèle KLV Local Sets
Universal Label
06.0e.2b.34.02.53.01.01.0d.01.01.01.01.01.37.00 (SMPTE)

Préface

Emplacement du KLV dans un MXF

Si je devais résumer rapidement, Source Package et ses enfants vont décrire les métadonnées des essences.

Nous n'aurons qu'un Source Package.

Source Package est l'un des deux packages du duo Package avec Material Package qui va gérer d'autres types de métadonnées.

A partir de ce Source Package, nous avons des pistes (Tracks) et leurs sous-KLV liés de la sorte :

Tout comme Material Package, Source Package est de type Package : ils auront donc un tronc commun dans leurs métadonnées.

Les métadonnées

╓─────────────────────────────────────────────────────────────────────────────────────────────────
║   3C0A - Instance ID              ║  6d2f324a.de9a45e4.abc8ee3b.ae364233
║   4401 - Package UID              ║  UL          : 060a2b34.01010105.01010f20
║                                   ║  Instance    : 000000
║                                   ║  Materiel    : 89af85f0.4a1545ec.8a769008.829b2029
║                                   ║  UMID Format : Basic
║   4402 - Name                     ║  File Package: SMPTE 429-4 frame wrapping of JPEG 2000 codestreams
║   4405 - Package Creation Date    ║  2022-04-08 12:55:36.0000+00:00
║   4404 - Package Modified Date    ║  2022-04-08 12:55:36.0000+00:00
║   4403 - Tracks                   ║  3 item(s):
║                                   ║  - 46a6c435.4e214d7f.8974cd5a.5c77fce1
║                                   ║  - fa1243a1.21874f1f.b34014bf.3353ee05
║                                   ║  - ee9e750a.fa1c4312.a0e52df9.bbad312d
║   4701 - Descriptor               ║  161145df.bfb2432a.bb3157f3.60810bc3
╙─────────────────────────────────────────────────────────────────────────────────────────────────

Le champ Package UID est important, c'est cet identifiant qui sera utilisé dans la CPL, la PKL et l'AssetMap.

Pour récupérer cet identifiant, vous pouvez utiliser cet exemple de code source mxf-get-assetuid.py

$ mxf-get-assetuid.py jp2k_3bd3d849-117b-46b0-bc45-3d3228c987c6_video.mxf 3bd3d849-117b-46b0-bc45-3d3228c987c6

Tracks va faire référence aux différents KLV Tracks : 2 x Timeline Track et 1 x Static Track

Descriptor fait lien avec les métadonnées de l'essence suivant le type d'essence :

Type Asset Nom du KLV Universal Label
Video RGBA Essence Descriptor 060e2b34.02530101.0d010101.01012900
Audio Wave Audio Essence Descriptor 060e2b34.02530101.0d010101.01014800
Subtitles TimedText Essence Descriptor 060e2b34.02530101.0d010101.01016400
Immersive Audio (Atmos) Immersive Audio Data Essence Descriptor 060e2b34.02530105.0e090603.00000000

Pour être plus précis, Descriptor va vous renvoyer vers un autre KLV - une sorte de hub KLV avec déjà des métadonnées sur les essences - mais qui peut également vous renvoyer vers d'autres KLV de métadonnées plus précises sur les essences (une sorte d'inception de métadonnées :)

Par exemple, sur un MXF Audio, le Descriptor va vous envoyer vers un KLV Wave Audio Essence Descriptor. À l'intérieur, vous aurez un item Descriptors & Sub-Descriptors qui va vous renvoyer vers une suite de KLV SoundField Group Label et des Audio Channel Label qui vont ajouter des métadonnées supplémentaires sur les essences audios.

Sur un MXF Video, le Descriptor pointera sur un KLV RGBA Essence Descriptor. Et à l'intérieur de ce KLV, son Descriptors & Sub-Descriptors pointera vers un KLV JPEG2000 Picture Sub-Descriptor :

Emplacement du KLV dans un MXF

Sur un MXF Video Stereoscopic, le Descriptor pointera sur un KLV RGBA Essence Descriptor, qui lui-même pointera sur deux KLV : un KLV JPEG2000 Picture Sub-Descriptor et un KLV Stereoscopic Picture Sub-Descriptor

Les données brutes

Voir Material Package, c'est pareil, sauf pour un item supplémentaire : Descriptor

Structures des données

Local Tag Nom de l'attribut Type Taille (*) Fixe/Variable SMPTE Obligatoire
3C0A Instance ID UUID 16 octets Fixe Oui
4401 Package UID UMID 32 octets Fixe Oui
4402 Name String (UTF-16) ?? octets Variable Non
4405 Package Creation Date Datetime 8 octets Fixe Oui
4404 Package Modified Date Datetime 8 octets Fixe Oui
4403 Tracks Batch UL ?? octets Variable Oui
4701 Descriptor UUID 16 octets Fixe Oui

(*) N'oubliez pas que les tailles sont purement indicatives car elles sont dynamiques et non fixes et dépendent des Length de chaque item. Notez cependant que la documentation SMPTE peut définir malgré tout certains items avec une valeur fixe, regardez dans la colonne Fixe/Variable SMPTE qui indique si la taille a été normée.

Hiérarchie du format

Interchange ObjectGeneric PackageSource Package

Etude rapide de l'Universal Label de Source Package

UL = 06.0E.2B.34.02.53.01.vv.0D.01.01.01.01.01.37.00
                             ^^------------------------------ Item Designator    : Organizationally registered
                                ^^--------------------------- Organization       : AAF
                                   ^^------------------------ Application        : MXF / AAF Association Structural Metadata Sets
                                      ^^--------------------- Structure Version  : Structure Version 1
                                         ^^------------------ Structure Kind     : MXF / AAF Association compatible sets and packs
                                            ^^--------------- MXF Set Definition : Source Package
                                               ^^------------ MXF Set Definition : Source Package