Le type d'asset CompositionMetadata est utilisé par CompositionMetadataAsset :
Longtemps absente, la CompositionMetadataAsset apparait principalement dans les DCP SMPTE créés à partir des années 2010.
Voici un exemple de CompositionMetadata :
<CompositionMetadataAsset xmlns="http://www.smpte-ra.org/schemas/429-16/2014/CPL-Metadata">
<Id>urn:uuid:ab0ee1ff-f2b9-40bf-8f7b-f08cce2daeb6</Id> --------.
<EditRate>48 1</EditRate> |--- Generic
<IntrinsicDuration>45020</IntrinsicDuration> --------'
<FullContentTitleText language="EN">Avatar: The Way of Water</FullContentTitleText> --------.
<ReleaseTerritory>001</ReleaseTerritory> |
<VersionNumber status="final">1</VersionNumber> |
<Chain>All</Chain> |--- CompositionMetadataAsset
<Distributor>20th Century Studios</Distributor> |
<Facility>Walt Disney Studios</Facility> |
<AlternateContentVersionList> |
<ContentVersion> |
<Id>urn:uuid:4fe83899-e35d-4641-93ad-ccf005da1b96</Id> |
<LabelText>AVATAR: THE WAY OF WATER</LabelText> |
</ContentVersion> |
</AlternateContentVersionList> |
<Luminance units="foot-lambert">14</Luminance> |
<MainSoundConfiguration>51/L,R,C,LFE,Ls,Rs,-,-,-,-,-,-,DBOX,-,-,-</MainSoundConfiguration> |
<MainSoundSampleRate>48000 1</MainSoundSampleRate> |
<MainPictureStoredArea> |
<Width>2048</Width> |
<Height>858</Height> |
</MainPictureStoredArea> |
<MainPictureActiveArea> |
<Width>2048</Width> |
<Height>858</Height> |
</MainPictureActiveArea> |
<ExtensionMetadataList> |
<ExtensionMetadata scope="http://isdcf.com/ns/cplmd/app"> |
<Name>Application</Name> |
<PropertyList> |
<Property> |
<Name>DCP Constraints Profile</Name> |
<Value>SMPTE-RDD-52:2020-Bv2.1</Value> |
</Property> |
</PropertyList> |
</ExtensionMetadata> |
<ExtensionMetadata scope="http://www.d-box.com/technical_notes/124-915-0005"> |
<Name>D-BOX Enabled</Name> |
<PropertyList> |
<Property> |
<Name>D-BOX Motion Code Primary Stream</Name> |
<Value>true</Value> |
</Property> |
</PropertyList> |
</ExtensionMetadata> |
</ExtensionMetadataList> ------'
</CompositionMetadataAsset>
L'AssetType CompositionMetadata sera utilisé par le tag CompositionMetadataAsset.
En résumé :
CompositionMetadataAsset.IntrinsicDuration == Main(Stereoscopic)Picture.Duration
CompositionMetadataAsset.EditRate == Main(Stereoscopic)Picture.EditRate
Duration et EntryPoint ne doivent pas être présents
XSD : https://smpte-ra.org/schemas/429-16/2014/CPL-Metadata ou CPL-ST429-16-CompositionMetadataAssetType.xsd
Cette partie permet de stocker des métadonnées supplémentaires applicables à la composition dans son ensemble. Elle permet également d'ajouter des métadonnées customisables ou pour de futurs développements (notamment grâce aux ExtensionMetadata)
Voici un bref résumé des différents éléments composants un bloc de CompositionMetadata :
Element | Type | Description |
---|---|---|
FullContentTitleText | Texte | Fully readable content title |
ReleaseTerritory | ISO Territory reference for content release | |
VersionNumber | Temp, Pre-release or Final Release status plus version number | |
Chain | Fully readable name of chain or specific event (if required) | |
Distributor | Fully readable name of content distributor | |
Facility | Fully readable name of mastering facility | |
AlternateContentVersionList | Alternative Content Version UUID for content databases & Client Version IDs | |
Luminance | Light level of picture recorded in Foot Lambert or Candela per sq.m units | |
MainSoundConfiguration | Fully readable details of audio configuration | |
MainSoundSampleRate | Fully readable details of sample rate | |
MainPictureStoredArea | Pixel dimensions of Stored (full) picture (eg pillar/letterboxed) | |
MainPictureActiveArea | Pixel dimensions of Active (visible) picture (eg pillar/letterboxed) | |
MainSubtitleLanguageList | Fully readable details of open and closed subtitle languages | |
ExtensionMetadataList | Extension Metadata |
C'est un code sur quelques lettres respectant la norme RFC-5646.
Exemple : FR, GB, US, UK, DE,... voire même BELGIUM, INT, GERMANY, FRANCE, ...
Le code 001
indique simplement que c'est une version internationale.
(si vous voyez un code 003
, c'est pour l'Amérique du Nord)
Quelques exemples :
<ReleaseTerritory>001</ReleaseTerritory>
<ReleaseTerritory>UK</ReleaseTerritory>
<ReleaseTerritory>US</ReleaseTerritory>
<ReleaseTerritory>fr</ReleaseTerritory>
<ReleaseTerritory>it</ReleaseTerritory>
<ReleaseTerritory>es</ReleaseTerritory>
<ReleaseTerritory>BELGIUM</ReleaseTerritory>
<ReleaseTerritory>FRANCE</ReleaseTerritory>
Vous retrouverez tous les codes sur IANA ou sa version simplifiée.
La VersionNumber indique simplement le status et la version de la composition.
C'ets un simple chiffre. Il y a une subtilité : un attribut "status" qui permet de définir le statut de cette composition :
Valeurs | Description |
---|---|
final | Composition définitive, elle peut partir en projection |
temp | Il existe encore des éléments en cours de finalisation (exemple, une piste sonore non mixée, des plans non finalisés) |
pre | Pre-release : elle indique que image et son sont définitifs mais les autres parties peuvent être encore en attente de finalisation |
Quelques exemples :
<VersionNumber status="final">1</VersionNumber>
<VersionNumber status="temp">42</VersionNumber>
<VersionNumber status="pre">1895</VersionNumber>
Si aucun attribut n'apparait, par exemple :
<VersionNumber>1</VersionNumber>
il est considéré par défaut comme final
Les 3 champs sont des simples strings, vous êtes libre de mettre ce que vous voulez.
Chain : La cible de la CPL (cinéma, festival, etc..). La plupart du temps, vous ne verrez que All :
<Chain>All</Chain>
Distributor : Le nom du distributeur ou du studio dans la zone de distribution :
<Distributor>Paramount</Distributor>
<Distributor>Universal</Distributor>
<Distributor>Walt Disney Studios</Distributor>
Facility : Le nom du créateur de la CPL :
<Facility>Disney Post-Production Technology</Facility>
<Facility>Eclair</Facility>
Vous pouvez associé d'autres contenus à cette CPL grâce à des ContentVersion. Les ContntVersion sont de la même syntaxe que le ContentVersion que nous avons vu plus haut.
<AlternateContentVersionList>
<ContentVersion>
<Id>urn:uuid:4fe83899-e35d-4641-93ad-ccf005da1b96</Id>
<LabelText>AVATAR: THE WAY OF WATER</LabelText>
</ContentVersion>
</AlternateContentVersionList>
Le DTDC 1 utilise ce champ (surtout avec ExtensionMetadata) :
<AlternateContentVersionList>
<ContentVersion>
<Id>urn:uuid:be51959c-2e1b-4dce-b921-f31fe7e58114</Id>
<LabelText>KrakenId-485182</LabelText>
</ContentVersion>
</AlternateContentVersionList>
Indique la luminance de l'écran sur lequel l'oeuvre a été étalonnée.
Vous aurez un attribut units
qui va indiquer le type d'unité utiliser, il n'y en a que deux (pour l'instant):
Type | Description |
---|---|
candela-per-square-metre | Unité de luminance internationale et normée |
foot-lambert | 3.426 candela par mètre-carré |
Historiquement, le cinéma utilise le foot-lambert, et la vidéo en cd/m2 (appelé aussi nits). Le plus souvent dans les DCP, vous verrez du foot-lamber (et souvent avec la valeur 14). Il n'y a pas de préférence ou de meilleur pour ce cas de figure. On dira que le foot-lambert est un peu le "Miles" de la lumière, si vous préférez respecter les normes internationales, privilégiez alors le candela-per-square-metre qui est une mesure normée (SI).
Voici quelques exemples :
<Luminance units="foot-lambert">14</Luminance>
<Luminance units="foot-lambert">6.0</Luminance>
<Luminance units="candela-per-square-metre">108</Luminance>
<Luminance units="candela-per-square-metre">31</Luminance>
Ce champ est une représentation lisible du soundfield et des canaux sonores présents dans MainSound.
Sa syntaxe respecte la norme IETF-5234 avec cette règle parfaitement lisible (* touss *):
MAINSOUND = SOUNDFIELD ["/" CHANNEL *("," CHANNEL)]
SOUNDFIELD = TOKEN
CHANNEL = "-" / TOKEN
TOKEN = 1*6(ALPHA / DIGIT)
Voici quelques exemples :
<MainSoundConfiguration>51/L,R,C,LFE,LS,RS,HI,VIN,-,-,-,-,DBOX,SYNC</MainSoundConfiguration>
<MainSoundConfiguration>71/L,R,C,LFE,Ls,Rs,Rls,Rrs,HI,VI-N</MainSoundConfiguration>
<MainSoundConfiguration>71/L,R,C,LFE,Lss,Rss,-,-,-,-,Lrs,Rrs,DBOX,FSKSync,-,-</MainSoundConfiguration>
<MainSoundConfiguration>M/C,-,-,-,-,-,-,-</MainSoundConfiguration>
Vous retrouverez certains codes ici ou à cette adresse :
Code | Description |
---|---|
L | Left |
R | Right |
C | Center |
LFE | Screen Low Frequency Effects |
Ls | Left Surround |
Rs | Right Surround |
Lss | Left Side Surround |
Rss | Right Side Surround |
Lrs | Left Rear Surround |
Rrs | Right Rear Surround |
Lc | Left Center |
Rc | Right Center |
Cs | Center Surround |
HI | Hearing Impaired (ex. piste dialogue prédominant) |
VIN | Visually Impaired-Narrative (personne qui décrit ce qu'il se passe à l'écran) |
FSKSync | Frequency Shift Keying Synchronization Signal |
ATMOS | Utilisé par le système ATMOS |
DBOX | Utilisé par le système DBOX |
- | Indique qu'on ne doit pas reproduire le son durant la lecture (silence) |
51 | 5.1 = L, C, R, Ls, Rs, LFE |
71 | 7.1DS = L, C, R, Lss, Rss, Lrs, Rrs, LFE |
SDS | 7.1SDS = L, Lc, C, Rc, R, Ls, Rs, LFE |
61 | 6.1 = L, R, C, Lss, Rss, Cs, LFE |
M | 1.0 Mono = C |
Voici en image, la configuration des différents éléments sonores dans une salle de cinéma :
MainSoundSampleRate est la valeur du SampleRate du MXF audio référencé dans MainSound.
99% du temps, vous n'aurez que la valeur 4800 1
<MainSoundSampleRate>48000 1</MainSoundSampleRate>
Vous retrouverez ce chiffre dans le KLV Wave Audio Essence Descriptor (060e2b34.02530101.0d010101.01014800
) sur l'item Audio sampling rate (3D03
)
060e2b34.02530101.0d010101.01014800 : Wave Audio Essence Descriptor
╓───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
║ Instance UID ║ cd5d10c0.e2c94eea.9d63549d.8ba20529
║ Linked Track ID ║ 2
║ Sample Rate ║ 24/1
║ Container Duration ║ 24
║ Essence Container ║ 060e2b34.04010101.0d010301.02060100 (Broadcast Wave audio - frame-based mapping)
║ Audio sampling rate ║ 48000/1
║ Locked/Unlocked ║ False
║ Audio Ref Level ║ 0
║ ChannelCount ║ 14
║ Quantization bits ║ 24
║ Dial Norm ║ 0
║ Block Align ║ 42
║ Sequence Offset ║ 0
║ Average Bytes Per Second ║ 2016000
║ Channel Assignment ║ 060e2b34.0401010b.04020210.03010400
╙───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Les deux paramètres StoredArea et ActiveArea seront utilisés par le player/projecteur :
<MainPictureStoredArea>
<Width>3996</Width>
<Height>2160</Height>
</MainPictureStoredArea>
<MainPictureActiveArea>
<Width>2960</Width>
<Height>2160</Height>
</MainPictureActiveArea>
Vous retrouverez ces informations dans les KLV RGBA Essence Descriptor et JPEG2000 Picture Sub-Descriptor
MainSubtitleLanguageList indique les langues utilisées dans MainSubtitle, le premier doit être la langue principale.
<MainSubtitleLanguageList>fr</MainSubtitleLanguageList>
<MainSubtitleLanguageList>en</MainSubtitleLanguageList>
Cet élément est de type xs:list
, normalement, ceci est parfaitement valide :
<MainSubtitleLanguageList>fr en</MainSubtitleLanguageList>
mais jamais constaté sur des centaines de milliers de CPLs étudiés.
Cette partie est très particulière : elle intègre une multitude de propriétés stockées dans une structure.
Ces données permettent d'activer ou de désactiver des options dans certains contextes.
Voici quelques exemples de propriétés :
<ExtensionMetadataList>
<!-- DCP SMPTE v2.1 (norme RDD-52) -->
<ExtensionMetadata scope="http://isdcf.com/ns/cplmd/app">
<Name>Application</Name>
<PropertyList>
<Property>
<Name>DCP Constraints Profile</Name>
<Value>SMPTE-RDD-52:2020-Bv2.1</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- DCP SMPTE v2.1 (non normée en SMPTE mais utilisée) -->
<!-- Normée dans Deluxe_Technicolor_Source_Delivery_Guidelines_1.0 -->
<ExtensionMetadata scope="http://www.smpte-ra.org/schemas/429-16/201x/Ext-Meta#scope">
<Name>SMPTE</Name>
<PropertyList>
<Property>
<Name>Version</Name>
<Value>Bv2.1</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- DBOX -->
<ExtensionMetadata scope="http://www.d-box.com/technical_notes/124-915-0005">
<Name>D-BOX Enabled</Name>
<PropertyList>
<Property>
<Name>D-BOX Motion Code Primary Stream</Name>
<Value>true</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Deluxe-Technicolor KDM Delivery (Kraken) -->
<ExtensionMetadata scope="http://kraken.dcinema.com/api/dcpProject?projectID=664377">
<Name>DTDC Id</Name>
<PropertyList>
<Property>
<Name>Kraken</Name>
<Value>12345</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Deluxe-Technicolor KDM Delivery (XyTech) -->
<ExtensionMetadata scope="http://kraken.dcinema.com/api/dcpProject?projectID=262595-1">
<Name>DTDC Id</Name>
<PropertyList>
<Property>
<Name>Xytech</Name>
<Value>12345-1</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Fox Tracking -->
<ExtensionMetadata scope="http://fox.com/schemas/2016/429-16#scope">
<Name>Fox Extensions</Name>
<PropertyList>
<Property>
<Name>PVID</Name>
<Value>12345</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Dolby EDR / Dolby Vision -->
<!-- ref. Deluxe_Technicolor_Source_Delivery_Guidelines_1.0 -->
<!-- ref. Netflix Studios Digital-Cinema-Package-DCP-Specifications-Requirements -->
<ExtensionMetadata scope="http://www.dolby.com/schemas/2014/EDR-Metadata">
<Name>Dolby EDR</Name>
<PropertyList>
<Property>
<Name>image transfer function</Name>
<Value>PQ10K</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- HDR DCI -->
<!-- DCI High Dynamic Range D-Cinema Addendum Version 1.1 -->
<ExtensionMetadata scope="http://www.dcimovies.com/schemas/2018/HDR-Metadata">
<Name>Image Encoding Parameters</Name>
<PropertyList>
<Property>
<Name>EOTF</Name>
<Value>ST 2084</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Immersive Audio (ex. Dolby Atmos) -->
<!-- ref. SMPTE 2098-2 - Immersive Audio Bitstream -->
<ExtensionMetadata scope="http://isdcf.com/ns/cplmd/app">
<Name>Application</Name>
<PropertyList>
<Property>
<Name>IAB Profile</Name>
<Value>SMPTE-ST-2098-2:2019-P1</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
<!-- Sign Language Video - SMPTE DCP Bv2.1 -->
<ExtensionMetadata scope="http://isdcf.com/2017/10/SignLanguageVideo">
<Name>Sign Language Video</Name>
<PropertyList>
<Property>
<Name>Language Tag</Name>
<Value>fr</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
</ExtensionMetadataList>
Vous aurez des métadonnées sous cette structure Property comprenant toujours deux éléments Name et Value.
Elle vous permet de définir des métadonnées pour votre gestion, par exemple en définissant une paire clef-valeur à l'intérieur de la CPL :
<ExtensionMetadata scope="http://dcp.inside/spec/20xx">
<Name>DCP Inside</Name>
<PropertyList>
<Property>
<Name>Version</Name>
<Value>1.0</Value>
</Property>
</PropertyList>
</ExtensionMetadata>
Vous retrouverez également un listing à cette adresse: https://registry-page.isdcf.com/cplmetadataexts/
MCASubDescriptors est un replica des données Multichannel Audio Framework stockées dans le MXF Audio principal "MainSound".
Ce sont les mêmes Soundfield Group Label Sub-Descriptor et Audio Channel Label Sub-Descriptor qu'on retrouvera dans le chapitre MXF - Configuration Audio & Multichannel Audio (MCA). Si vous lisez ce chapitre, vous comprendrez directement la structure et les données s'y accompagnant.
Pour faire un bref résumé, tout comme le MXF, vous aurez en premier un SoundfieldGroupLabelSubDescriptor qui va décrire une configuration audio globale (ici un 5.1), suivi d'un ou plusieurs AudioChannelLabelSubDescriptor qui vont définir chaque canal et leurs rôles (exemple avec le 1er qui va définir le canal Left)
Un exemple simplifié d'un MCASubDescriptors :
<MCASubDescriptors xmlns="http://isdcf.com/ns/cplmd/mca" xmlns="http://www.smpte-ra.org/reg/395/2014/13/1/aaf" xmlns="http://www.smpte-ra.org/reg/335/2012">
<SoundfieldGroupLabelSubDescriptor>
<InstanceID>urn:uuid:2076ac42-9012-4def-a041-d4c6eb70960a</InstanceID>
<MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020201.00000000</MCALabelDictionaryID>
<MCALinkID>urn:uuid:a37a55a3-2690-4176-937c-35ccf8fefec7</MCALinkID>
<MCATagSymbol>sg51</MCATagSymbol>
<MCATagName>5.1</MCATagName>
<RFC5646SpokenLanguage>en</RFC5646SpokenLanguage>
</SoundfieldGroupLabelSubDescriptor>
<AudioChannelLabelSubDescriptor>
<InstanceID>urn:uuid:f1d7e871-4bf3-40f0-b546-47eec9709eab</InstanceID>
<MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020101.00000000</MCALabelDictionaryID>
<MCALinkID>urn:uuid:42055ad7-4399-47e3-b9fd-188e32288cc8</MCALinkID>
<MCATagSymbol>chL</MCATagSymbol>
<MCAChannelID>1</MCAChannelID>
<MCATagName>Left</MCATagName>
<RFC5646SpokenLanguage>en</RFC5646SpokenLanguage>
<SoundfieldGroupLinkID>urn:uuid:a37a55a3-2690-4176-937c-35ccf8fefec7</SoundfieldGroupLinkID>
</AudioChannelLabelSubDescriptor>
<AudioChannelLabelSubDescriptor>
<InstanceID>urn:uuid:42b7f6aa-d98e-4041-a8ad-3f39fd463d9e</InstanceID>
<MCALabelDictionaryID>urn:smpte:ul:060e2b34.0401010d.03020102.00000000</MCALabelDictionaryID>
<MCALinkID>urn:uuid:48356edf-5fcd-4542-bc1f-108f61e21d7f</MCALinkID>
<MCATagSymbol>chR</MCATagSymbol>
<MCAChannelID>2</MCAChannelID>
<MCATagName>Right</MCATagName>
<RFC5646SpokenLanguage>en</RFC5646SpokenLanguage>
<SoundfieldGroupLinkID>urn:uuid:a37a55a3-2690-4176-937c-35ccf8fefec7</SoundfieldGroupLinkID>
</AudioChannelLabelSubDescriptor>
</MCASubDescriptors>
Le doublon des données de MXF dans la CPL sont pour des raisons de logistiques et/ou d'interopérabilité entre les différentes machines qui manipuleront le DCP. Cela évite également de devoir parser les MXF pour obtenir ce genre d'informations.
A noter que dans le cadre des DCP v2.1, il faut au moins un MCASubDescriptors dans la CompositionMetadataAsset.
CompositionMetadata va devenir avec le temps l'élément de plus en plus important, intégrant énormément de métadonnées récoltées un peu partout facilitant le travail dans certains processus.
(oui, je n'ai pas grand chose à conclure là :)
DTDC est un système développé par Deluxe et Technicolor (le DT de DTDC :) permettant la livraison automatisée de KDM. ↩