I am currently revising the archiving and distribution strategy of a larger catalog of hi-res movie files.
I am investigating how existing metadata standards can be used to create consistency in the collection, and how suitable the standards are for internal as well as external use.
Especially for the internal use, the technical metadata of the files is very crucial.
When reading out technical metadata via MediaInfo, both in PBCore and EBUCore I noticed differences.
Unfortunately, since my knowledge of metadata standards is limited, I hope someone can assist me with the interpretation of the output.
I tested a UHD HDR video file.
EBUCore Output:
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated at 2023-01-15T23:12:22Z by MediaInfoLib - v22.12 -->
<ebucore:ebuCoreMain xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:ebucore="urn:ebu:metadata-schema:ebucore" xmlns:xalan="http://xml.apache.org/xalan" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:ebu:metadata-schema:ebucore https://www.ebu.ch/metadata/schemas/EBUCore/20171009/ebucore.xsd" version="1.8" writingLibraryName="MediaInfoLib" writingLibraryVersion="22.12" dateLastModified="2023-01-15" timeLastModified="23:12:22Z">
<ebucore:coreMetadata>
<ebucore:format>
<ebucore:videoFormat videoFormatName="ProRes" videoFormatVersionId="1">
<ebucore:width unit="pixel">3840</ebucore:width>
<ebucore:height unit="pixel">2160</ebucore:height>
<ebucore:frameRate factorNumerator="1000" factorDenominator="1001">24</ebucore:frameRate>
<ebucore:aspectRatio typeLabel="display">
<ebucore:factorNumerator>16</ebucore:factorNumerator>
<ebucore:factorDenominator>9</ebucore:factorDenominator>
</ebucore:aspectRatio>
<ebucore:videoEncoding typeLabel="4444" />
<ebucore:codec>
<ebucore:codecIdentifier>
<dc:identifier>ap4h</dc:identifier>
</ebucore:codecIdentifier>
</ebucore:codec>
<ebucore:bitRate>769082388</ebucore:bitRate>
<ebucore:bitRateMode>variable</ebucore:bitRateMode>
<ebucore:scanningFormat>progressive</ebucore:scanningFormat>
<ebucore:videoTrack trackId="1" />
<ebucore:technicalAttributeString typeLabel="ColorSpace">YUVA</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="ChromaSubsampling">4:4:4</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="colour_primaries">BT.2020</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="transfer_characteristics">PQ</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="matrix_coefficients">BT.2020 non-constant</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="WritingLibrary">Apple</ebucore:technicalAttributeString>
<ebucore:technicalAttributeInteger typeLabel="StreamSize" unit="byte">280675296</ebucore:technicalAttributeInteger>
</ebucore:videoFormat>
<ebucore:audioFormat audioFormatName="PCM">
<ebucore:audioEncoding typeLabel="PCM" typeLink="http://www.ebu.ch/metadata/cs/ebu_AudioCompressionCodeCS.xml#11" />
<ebucore:codec>
<ebucore:codecIdentifier>
<dc:identifier>in24</dc:identifier>
</ebucore:codecIdentifier>
</ebucore:codec>
<ebucore:samplingRate>48000</ebucore:samplingRate>
<ebucore:sampleSize>24</ebucore:sampleSize>
<ebucore:bitRate>1152000</ebucore:bitRate>
<ebucore:bitRateMode>constant</ebucore:bitRateMode>
<ebucore:audioTrack trackId="2" trackLanguage="en" />
<ebucore:channels>1</ebucore:channels>
<ebucore:technicalAttributeString typeLabel="ChannelLayout">M</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="Endianness">Little</ebucore:technicalAttributeString>
<ebucore:technicalAttributeInteger typeLabel="StreamSize" unit="byte">420420</ebucore:technicalAttributeInteger>
</ebucore:audioFormat>
<ebucore:containerFormat containerFormatName="MPEG-4">
<ebucore:containerEncoding formatLabel="MPEG-4" />
<ebucore:codec>
<ebucore:codecIdentifier>
<dc:identifier>qt </dc:identifier>
</ebucore:codecIdentifier>
</ebucore:codec>
<ebucore:technicalAttributeString typeLabel="FormatProfile">QuickTime</ebucore:technicalAttributeString>
<ebucore:technicalAttributeString typeLabel="WritingLibrary">Apple QuickTime</ebucore:technicalAttributeString>
</ebucore:containerFormat>
<ebucore:timecodeFormat timecodeFormatName="QuickTime TC">
<ebucore:timecodeStart>
<ebucore:timecode>00:00:00:00</ebucore:timecode>
</ebucore:timecodeStart>
<ebucore:timecodeTrack trackId="3" />
<ebucore:technicalAttributeBoolean typeLabel="Stripped">true</ebucore:technicalAttributeBoolean>
</ebucore:timecodeFormat>
<ebucore:duration>
<ebucore:normalPlayTime>PT2.920S</ebucore:normalPlayTime>
</ebucore:duration>
<ebucore:fileSize>282355218</ebucore:fileSize>
<ebucore:fileName>metatest.mov</ebucore:fileName>
<ebucore:locator>/Users/User/Documents/Test/metatest.mov</ebucore:locator>
<ebucore:technicalAttributeInteger typeLabel="OverallBitRate" unit="bps">773575940</ebucore:technicalAttributeInteger>
<ebucore:dateCreated startDate="2022-12-08" startTime="13:59:04Z" />
<ebucore:dateModified startDate="2022-12-08" startTime="13:59:18Z" />
</ebucore:format>
</ebucore:coreMetadata>
</ebucore:ebuCoreMain>
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated at 2023-01-15T23:12:53Z by MediaInfoLib - v22.12 -->
<pbcoreInstantiationDocument xsi:schemaLocation="http://www.pbcore.org/PBCore/PBCoreNamespace.html https://raw.githubusercontent.com/WGBH/PBCore_2.1/master/pbcore-2.1.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.pbcore.org/PBCore/PBCoreNamespace.html">
<instantiationIdentifier source="File Name">metatest.mov</instantiationIdentifier>
<instantiationDate dateType="file modification">2022-12-08T16:03:16Z</instantiationDate>
<instantiationDate dateType="encoded">2022-12-08T13:59:04Z</instantiationDate>
<instantiationDate dateType="tagged">2022-12-08T13:59:18Z</instantiationDate>
<instantiationDigital>video/mp4</instantiationDigital>
<instantiationStandard profile="QuickTime">MPEG-4</instantiationStandard>
<instantiationLocation>/Users/User/Documents/Test/metatest.mov</instantiationLocation>
<instantiationMediaType>Moving Image</instantiationMediaType>
<instantiationFileSize unitsOfMeasure="byte">282355218</instantiationFileSize>
<instantiationDuration>00:00:02:22</instantiationDuration>
<instantiationDataRate unitsOfMeasure="bit/second" annotation="VBR">773575940</instantiationDataRate>
<instantiationTracks>2</instantiationTracks>
<instantiationChannelConfiguration>Track 2: 1 channel (M), Track 2: 1 channel (M)</instantiationChannelConfiguration>
<instantiationEssenceTrack>
<essenceTrackType>Video</essenceTrackType>
<essenceTrackIdentifier source="ID">1</essenceTrackIdentifier>
<essenceTrackIdentifier source="StreamKindID (MediaInfo)">0</essenceTrackIdentifier>
<essenceTrackIdentifier source="StreamOrder (MediaInfo)">0</essenceTrackIdentifier>
<essenceTrackEncoding source="codecid" ref="ap4h" version="Version 1" annotation="profile:4444">ProRes</essenceTrackEncoding>
<essenceTrackDataRate unitsOfMeasure="bit/second" annotation="VBR">769082388</essenceTrackDataRate>
<essenceTrackFrameRate annotation="rational_frame_rate:24000/1001 interlacement:Progressive">23.976</essenceTrackFrameRate>
<essenceTrackFrameSize>3840x2160</essenceTrackFrameSize>
<essenceTrackAspectRatio>1.778</essenceTrackAspectRatio>
<essenceTrackTimeStart source="Container">00:00:00:00</essenceTrackTimeStart>
<essenceTrackDuration>00:00:02:22</essenceTrackDuration>
<essenceTrackLanguage>eng</essenceTrackLanguage>
<essenceTrackAnnotation annotationType="HDR_Format">SMPTE ST 2086</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="HDR_Format_Commercial">HDR10</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="HDR_Format_Compatibility">HDR10</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="Rotation">0.000</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="FrameCount">70</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="ColorSpace">YUVA</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="ChromaSubsampling">4:4:4</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="StreamSize">280675296</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="colour_description_present">Yes</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="colour_description_present_Source">Container / Stream</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="colour_primaries">BT.2020</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="colour_primaries_Source">Container / Stream</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="transfer_characteristics">PQ</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="transfer_characteristics_Source">Container / Stream</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="matrix_coefficients">BT.2020 non-constant</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="matrix_coefficients_Source">Container / Stream</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MasteringDisplay_ColorPrimaries">Display P3</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MasteringDisplay_ColorPrimaries_Source">Container</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MasteringDisplay_Luminance">min: 0.0050 cd/m2, max: 1000 cd/m2</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MasteringDisplay_Luminance_Source">Container</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MaxCLL">721 cd/m2</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MaxCLL_Source">Container</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MaxFALL">421 cd/m2</essenceTrackAnnotation>
<essenceTrackAnnotation annotationType="MaxFALL_Source">Container</essenceTrackAnnotation>
</instantiationEssenceTrack>
<instantiationEssenceTrack>
<essenceTrackType>Audio</essenceTrackType>
<essenceTrackIdentifier source="ID">2</essenceTrackIdentifier>
<essenceTrackIdentifier source="StreamKindID (MediaInfo)">0</essenceTrackIdentifier>
<essenceTrackIdentifier source="StreamOrder (MediaInfo)">1</essenceTrackIdentifier>
<essenceTrackEncoding source="codecid" ref="in24" annotation="endianness:Little signedness:Signed">PCM</essenceTrackEncoding>
<essenceTrackDataRate unitsOfMeasure="bit/second" annotation="CBR">1152000</essenceTrackDataRate>
<essenceTrackSamplingRate unitsOfMeasure="Hz">48000</essenceTrackSamplingRate>
<essenceTrackBitDepth>24</essenceTrackBitDepth>
<essenceTrackTimeStart source="Container">00:00:00.000</essenceTrackTimeStart>
<essenceTrackDuration>00:00:02.920</essenceTrackDuration>
<essenceTrackLanguage>eng</essenceTrackLanguage>
<essenceTrackAnnotation annotationType="StreamSize">420420</essenceTrackAnnotation>
</instantiationEssenceTrack>
<instantiationAnnotation annotationType="Other_Codec_List">QuickTime TC</instantiationAnnotation>
<instantiationAnnotation annotationType="FrameCount">70</instantiationAnnotation>
<instantiationAnnotation annotationType="Encoded_Library">Apple QuickTime</instantiationAnnotation>
<instantiationAnnotation annotationType="TIM">00:00:00:00</instantiationAnnotation>
<instantiationAnnotation annotationType="TSC">24000</instantiationAnnotation>
<instantiationAnnotation annotationType="TSZ">1001</instantiationAnnotation>
</pbcoreInstantiationDocument>
I noticed, that in the EBUCore dataset e.g. some important HDR information is missing. Also, something, which is important for my use case, a frame exactly Timecode is not provided.
In contrast, all metadata from Mediainfo is mapped to PBCore – which is great.
If I understand it correctly, for some information, there is actually no special metadata field defined in PBCore. To map that information from MediaInfo into PBCore anyway, the element essenceTrackAnnotation with the attribute annotationType is used.
As a very simplistic conclusion, I would rather choose the PBCore Standard for my use case. Since it seems that here truly all my technical metadata can be adopted.
For fun, I also generated an MPEG-7 view. Even though I actually know that this standard is less suitable for my use case. And as you can see, even more important information is not transmitted in the MPEG-7 Standard.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated at 2023-01-15T23:15:27Z by MediaInfoLib - v22.12 -->
<mpeg7:Mpeg7 xmlns="urn:mpeg:mpeg7:schema:2004" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2004" xsi:schemaLocation="urn:mpeg:mpeg7:schema:2004 http://standards.iso.org/ittf/PubliclyAvailableStandards/MPEG-7_schema_files/mpeg7-v2.xsd">
<mpeg7:DescriptionMetadata>
<mpeg7:PrivateIdentifier>metatest.mov</mpeg7:PrivateIdentifier>
<mpeg7:CreationTime>2023-01-15T23:15:27+00:00</mpeg7:CreationTime>
<mpeg7:Instrument>
<mpeg7:Tool>
<mpeg7:Name>MediaInfoLib - v22.12</mpeg7:Name>
</mpeg7:Tool>
</mpeg7:Instrument>
</mpeg7:DescriptionMetadata>
<mpeg7:Description xsi:type="ContentEntityType">
<mpeg7:MultimediaContent xsi:type="AudioVisualType">
<mpeg7:AudioVisual>
<mpeg7:MediaInformation>
<mpeg7:MediaProfile>
<mpeg7:MediaFormat>
<mpeg7:Content href="urn:mpeg:mpeg7:cs:ContentCS:2001:2">
<mpeg7:Name xml:lang="en">Audiovisual</mpeg7:Name>
</mpeg7:Content>
<mpeg7:FileFormat href="urn:mpeg:mpeg7:cs:FileFormatCS:2001:5">
<mpeg7:Name xml:lang="en">mp4</mpeg7:Name>
</mpeg7:FileFormat>
<mpeg7:FileSize>282355218</mpeg7:FileSize>
<mpeg7:BitRate>773575940</mpeg7:BitRate>
<mpeg7:VisualCoding>
<mpeg7:Format href="urn:x-mpeg7-mediainfo:cs:VisualCodingFormatCS:2009:54" colorDomain="color">
<mpeg7:Name xml:lang="en">ProRes</mpeg7:Name>
</mpeg7:Format>
<mpeg7:Pixel aspectRatio="1.000" />
<mpeg7:Frame aspectRatio="1.778" height="2160" width="3840" rate="23.976" structure="progressive" />
</mpeg7:VisualCoding>
<mpeg7:AudioCoding>
<mpeg7:Format href="urn:mpeg:mpeg7:cs:AudioCodingFormatCS:2001:8">
<mpeg7:Name xml:lang="en">Linear PCM</mpeg7:Name>
</mpeg7:Format>
<mpeg7:AudioChannels>1</mpeg7:AudioChannels>
<mpeg7:Sample rate="48000" bitsPer="24" />
<mpeg7:Presentation href="urn:mpeg:mpeg7:cs:AudioPresentationCS:2001:2">
<mpeg7:Name xml:lang="en">mono</mpeg7:Name>
</mpeg7:Presentation>
</mpeg7:AudioCoding>
</mpeg7:MediaFormat>
</mpeg7:MediaProfile>
</mpeg7:MediaInformation>
<mpeg7:CreationInformation>
<mpeg7:Creation>
<mpeg7:Title>metatest.mov</mpeg7:Title>
<mpeg7:CreationCoordinates>
<mpeg7:Date>
<!-- Encoded date -->
<mpeg7:TimePoint>2022-12-08T13:59:04+00:00</mpeg7:TimePoint>
</mpeg7:Date>
</mpeg7:CreationCoordinates>
<mpeg7:CreationTool>
<mpeg7:Tool>
<!-- Writing library -->
<mpeg7:Name>Apple QuickTime</mpeg7:Name>
</mpeg7:Tool>
</mpeg7:CreationTool>
</mpeg7:Creation>
</mpeg7:CreationInformation>
<mpeg7:MediaTime>
<mpeg7:MediaTimePoint>T00:00:00:0F1000</mpeg7:MediaTimePoint>
<mpeg7:MediaDuration>PT0H0M2S22N24F</mpeg7:MediaDuration>
</mpeg7:MediaTime>
</mpeg7:AudioVisual>
</mpeg7:MultimediaContent>
</mpeg7:Description>
</mpeg7:Mpeg7>
To cut a long story short: Am I correct in concluding that technical metadata from MediaInfo for which no elements are defined in the standards (EBUCore, MPEG-7) will no be transmitted?!
Because that leads me to conclude better not to apply those standards (namely EBUCore, MPEG-7) and rather choose PBCore for my use case.
Sorry for this long text. As I said, I am more than grateful for any advice!
Best
Stefan
//essenceTrackFrameSizeif (!MI.Get(StreamKind, StreamPos, __T("Width")).empty()){Ztring framesize;framesize=MI.Get(StreamKind, StreamPos, __T("Width"));framesize+=__T("x");framesize+=MI.Get(StreamKind, StreamPos, __T("Height"));Node_EssenceTrack->Add_Child("essenceTrackFrameSize", framesize);}
--
You received this message because you are subscribed to the Google Groups "PBCore Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pbcore-talk...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pbcore-talk/c58178fd-e1e8-4be2-9b7c-e47d206a0f90n%40googlegroups.com.