21
TOOLS FOR MXF-EMBEDDED EBUCORE METADATADieter Van Rijsselbergen, Jean-Pierre Evain Limecraft, EBU Get in contact: [email protected] ; @limecraft #FIATIFTADubai2013 D. V. Rijsselbergen; JP. Evain: Tools for MXF-embeddded EBUcore metadataReplace box with your company logo Copyright © of this presenta1on is the property of the author(s). FIAT/IFTA is granted permission to reproduce copies of this work for purposes relevant to the above conference and future communica1on by FIAT/IFTA without limita1on, provided that the author(s), source and copyright no1ce are included in each copy. For other uses, including extended quota1on, please contact the author(s).

Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain Limecraft, EBU

Embed Size (px)

DESCRIPTION

WHICH FILE CONTAINER? • Material Exchange Format ( ) •  Standardized in 2004 •  By now the de facto standard of " professional audio-visual file formats •  Many specifications and many features •  Structural Metadata…

Citation preview

Page 1: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

“TOOLS FOR MXF-EMBEDDED EBUCORE METADATA” Dieter Van Rijsselbergen, Jean-Pierre Evain Limecraft, EBU Get in contact: [email protected];"@limecraft

#FIATIFTADubai2013 D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata” Replace  box  with    your  company  logo  

Copyright  ©  of  this  presenta1on  is  the  property  of  the  author(s).  FIAT/IFTA  is  granted  permission  to  reproduce  copies  of  this  work  for  purposes  relevant  to  the  above  conference  and  future  communica1on  by  FIAT/IFTA  without  limita1on,  provided  that  the  author(s),  source  and  copyright  no1ce  are  included  in  each  copy.  For  other  uses,  including  extended  quota1on,  please  contact  the  author(s).  

Page 2: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA "TRANSFERS "INTO THE ARCHIVE

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Metadata  

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 3: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA TRANSFERS → ARCHIVE • How to transfer Essence and its Metadata?

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Out-of-band delivery

Archive

Embedded

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 4: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA TRANSFERS → ARCHIVE

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Essence + Metadata MXF + Metadata XML

Delivery Interpretation

(file01.mxf + file01.xml)

Delivery Technology

(FTP)

Essence + Metadata MXF ← Metadata

Delivery Technology

(FTP)

Out-of-band delivery vs. Embedded delivery

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 5: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

WHICH FILE CONTAINER? • Material Exchange Format ( )

•  Standardized in 2004 •  By now the de facto standard of "

professional audio-visual file formats •  Many specifications and many features

•  Structural Metadata…

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Timecode TrackPicture Track

Virtual DMTrack

Sound Track 2Sound Track 1

DMSegment 1

Edit unit

Data TrackLinks to all essence tracks(default) Links only to sound tracks Links only to thepicture track

DMFramework

DMSegment 2

DMFramework

DMSegment 3

DMFramework

EventStartPosition

Duration

… and Descriptive Metadata!

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 6: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

WHICH EMBEDDED METADATA? • Descriptive Metadata for MXF exists

•  E.g., Descriptive Metadata Scheme-1 (DMS-1) •  Production characteristics, rights information, annotations,

person and entity identification, … •  DMS-1 is barely being used for real

•  Perhaps due to the fact that there is no DMS-1 notion outside of the MXF ecosystem?

•  Exchange is always using another standard (e.g, MPEG-7, TV Anytime)

•  Hard to obtain a viable and complete mapping or metadata authored outside of MXF

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 7: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

WHICH EMBEDDED METADATA? • Alternatives?

•  Use metadata that is used outside of MXF!

•  Core •  EBU’s extension of Dublin Core •  Metadata framework for descriptive and technical metadata

•  about audiovisual assets •  for use

•  in Service Oriented Architectures; •  in audio-visual ontologies for semantic web; •  and linked data developments

•  Gaining traction and adoption"with broadcasters and archives

•  Native format is XML (defined by XML Schema)

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 8: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

EMBEDDED EBUCORE METADATA? • Embedding Core worklfow

• Use XML authoring and processing tools for metadata creation… •  Directly or via transformation

•  E.g., the MINT mapping tool

• …then place the EBUCore XML in the MXF container…

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 9: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

EMBEDDING METADATA IN MXF? • How? • Translate EBUCore"to the KLV structure"of MXF somehow

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

<?xml  version="1.0"  encoding="UTF-­‐8"?>  <ebuCoreMain  xmlns:xsi="http://www.w3.org/2001/XMLSchema-­‐instance"      xmlns:dc=http://purl.org/dc/elements/1.1/      xmlns="urn:ebu:metadata-­‐schema:ebuCore_2011"      xmlns:default=http://iptc.org/std/nar/2006-­‐10-­‐01/      xmlns:ebu=http://ebu.org/nar-­‐extensions/  version="1.3"        dateLastModified="2011-­‐01-­‐31">      <coreMetadata>          <title>              <dc:title  xml:lang="fr-­‐can">Berlin  Wall  50th</dc:title>          </title>          <alternativeTitle  typeLabel="headline">              <dc:title>Berlin  Wall  50th</dc:title>          </alternativeTitle>          <creator  entityId="EBUNMSSRVCodeSource:TBA"/>          <subject>              <dc:subject/>              <subjectCode>EBUNMSCategoryCode:EXCH</subjectCode>          </subject>          <subject>              <dc:subject>In  or  about  Europe  and  EU</dc:subject>              <subjectCode>EBUNMSWebcatCode:EUROPE</subjectCode>          </subject>          <description  typeLabel="pubStatus">              <dc:description>NMSStatusCode:TBC</dc:description>          </description>          <description  typeLink="EBUNMSDescription:dopesheet">              <dc:description>  The  Berlin  Wall  (German:  Berliner  Mauer)  was                    a  barrier  constructed  by  the  German  Democratic  Republic                    (GDR,  East  Germany)  starting  August  13,  1961,  that  completely                    cut  off  West  Berlin  from  surrounding  East  Germany…  

Key Length Value

16  bytes16  bytes BER-­‐encoded  length

BER-­‐encoded  length Length  lengthLength  length

......

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 10: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA EMBEDDING STRATEGIES

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

File Header File Body File Footer

HeaderPartition Pack

HeaderMetadata

EssenceContainer

IndexTable

FooterPartition Pack

EssenceContainer

HeaderMetadata

RunIn

BodyPartition Pack

(optional)

RandomIndex

(optional) (optional)(optional)(optional)

KLV

DARK KLV SIDE-CAR

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 11: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA EMBEDDING STRATEGIES • Dark

+ Embedded in the MXF file, easier to extract"(locate a single KLV element and read its contents) - No interaction with the structural metadata

• KLV + Full interaction and relations with structural metadata,"the MXF way - More complex to implement and support

• Sidecar + Valid (but limited) interaction with MXF timeline - No actual embedded metadata, "requires an out-of-band delivery mechanism

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 12: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA EMBEDDING STRATEGIES • In case of KLV, a mapping is required between EBUCore XML and EBUCore KLV

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

<ebucoreCoreMetadata  key="06  0E  2B  34  02  7F  01  0B  0D  02  01  01  01  02  00  00"  base="InterchangeObject"  type="localSet">          <identifier  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  01  00"  type="StrongRefBatch"  use="optional"  target="ebucoreIdentifier"  />          <title  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  02  00"  type="StrongRefBatch"  use="optional"  target="ebucoreTitle"  />          <alternativeTitle  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  03  00"  type="StrongRefBatch"  use="optional"  target="ebucoreAlternativeTitle"  />          <creator  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  04  00"  type="StrongRefBatch"  use="optional"  target="ebucoreEntity"  />          <subject  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  05  00"  type="StrongRefBatch"  use="optional"  target="ebucoreSubject"  />          <description  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  06  00"  type="StrongRefBatch"  use="optional"  target="ebucoreDescription"  />          <publisher  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  07  00"  type="StrongRefBatch"  use="optional"  target="ebucoreEntity"  />          <contributor  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  08  00"  type="StrongRefBatch"  use="optional"  target="ebucoreEntity"  />          <date  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  09  00"  type="StrongRefBatch"  use="optional"  target="ebucoreDate"  />          <type  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0A  00"  type="StrongRefBatch"  use="optional"  target="ebucoreType"  />          <language  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0B  00"  type="StrongRefBatch"  use="optional"  target="ebucoreLanguage"  />          <coverage  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0C  00"  type="StrongRefBatch"  use="optional"  target="ebucoreCoverage"  />          <rights  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0D  00"  type="StrongRefBatch"  use="optional"  target="ebucoreRights"  />          <rating  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0E  00"  type="StrongRefBatch"  use="optional"  target="ebucoreRating"  />          <version  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  0F  00"  type="StrongRef"  use="optional"  target="ebucoreVersion"  />          <publicationHistory  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  10  00"  type="StrongRef"  use="optional"  target="ebucorePublicationHistory"  />          <customRelation  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  11  00"  type="StrongRefBatch"  use="optional"  target="ebucoreCustomRelation"  />          <basicRelation  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  12  00"  type="StrongRefBatch"  use="optional"  target="ebucoreBasicRelation"  />          <format  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  13  00"  type="StrongRefBatch"  use="optional"  target="ebucoreFormat"  />          <part  globalKey="06  0E  2B  34  01  01  01  0E  0D  02  01  01  02  A0  14  00"  type="StrongRefBatch"  use="optional"  target="ebucorePartMetadata"  />      </ebucoreCoreMetadata>  

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 13: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

METADATA EMBEDDING STRATEGIES • In case of KLV, a mapping is required between EBUCore XML and EBUCore KLV

•  This mapping and KLV representation have been submitted to SMPTE •  Will form a part of the official SMPTE Metadata Register

•  As Class 13 Public User Organisation metadata •  Keys under 06.0E.2B.34.01.01.01.05.0D.02 are EBU’s

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 14: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK • In order to lower threshold of using "EBUCore embedded metadata… • Initiative by EBU to provide community with reliable"and open-source software to manipulate MXF files

•  Handle metadata •  Handle essence and work on conformity of MXF files

• Available at: •  Repository: https://github.com/Limecraft/ebu-mxfsdk •  Binaries: http://sourceforge.net/projects/ebu-mxfsdk

• Released under the Apache License 2.0 •  Free & Open Source •  Use in non-commercial/commercial "

applications

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

ebu2mxf.exe

raw2bm

x.exe

mxf2ebu.exe

Custom Tools and System

Integrations

EBU MXF SDK

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 15: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK • Use of the SDK

•  Command line tools included •  Use as-is for basic tasks •  Getting started quickly

•  Use as a function library •  Build custom applications linked with the SDK

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

ebu2mxf.exe

raw2bm

x.exe

mxf2ebu.exe

Custom Tools and System

Integrations

EBU MXF SDK

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 16: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK • Example use of the SDK

•  Put EBUCore metadata in MXF file •  Existing MXF file •  Specify input EBUCore XML file •  Pick a strategy (KLV default)

•  Remove is also an option

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

ebu2mxf.exe

raw2bm

x.exe

mxf2ebu.exe

Custom Tools and System

Integrations

EBU MXF SDK

Usage: ebu2mxf <<options>> <filename> Options: -h | --help Show usage and exit -v | --version Print version info -l <file> Log filename. Default log to stderr/stdout -i Print file information to stdout --ebu-core <file> Write embedded EBU Core metadata to file --force-header Force metadata to be appended into the header partition --dark Write EBU Core metadata into a dark metadata set --sidecar Write EBU Core metadata as a side-car reference --remove Remove EBU Core metadata from the MXF file header metadata

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 17: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK • Example use of the SDK

•  Take EBUCore metadata from MXF file •  Existing MXF file •  Specify output EBUCore XML file

•  All serialization strategies are"automatically evaluated

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Usage: mxf2ebu <<options>> <filename> Options: -h | --help Show usage and exit -v | --version Print version info -l <file> Log filename. Default log to stderr/stdout -i Print file information to stdout --ebu-core <file> Write embedded EBU Core metadata to file

ebu2mxf.exe

raw2bm

x.exe

mxf2ebu.exe

Custom Tools and System

Integrations

EBU MXF SDK

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 18: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK • Example use of the SDK

•  Assemble new MXF files with EBUCore •  Specify MXF flavor, essence "

and EBUCore XML file

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

Usage: raw2bmx <<options>> [<<input options>> <input>]+ Options (* means option is required): -h | --help Show usage and exit -v | --version Print version info -l <file> Log filename. Default log to stderr/stdout -t <type> Clip type: as02, as11op1a, as11d10, op1a, avid, d10, wave. Default is as02 … EBU Core: --ebu-core <name> Parse and set EBU Core from <name> …

ebu2mxf.exe

raw2bm

x.exe

mxf2ebu.exe

Custom Tools and System

Integrations

EBU MXF SDK

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 19: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

TOOLS: EBUCORE MXF SDK - PoC • Example use of the SDK in a Proof-of-Concept demonstrator in Limecraft Flow

#FIATIFTADubai2013 Replace  box  with    your  company  logo  

mxf2ebu.exe

EBU MXF SDK

Feature Detection

Media Probing

Metadata Index

Media Repository

Search Application «User»

Retrieval Application

D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 20: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

CONCLUSIONS • There is a case for embedded metadata in archiving and media production

•  Makes the delivery process easier • MXF and EBUCore make an interesting combination

•  Broad adoption of both standards • There are various ways in which EBUCore"can be embedded in MXF

•  Advantages and disadvantages to each strategy • EBU/Limecraft have built tools and an SDK to...

•  Allow users to get started quickly and easily"with using EBUCore in MXF files

•  Experiment with various serialization strategies •  Use these tools in custom applications freely

•  Please experiment: •  Repository: https://github.com/Limecraft/ebu-mxfsdk •  Binaries: http://sourceforge.net/projects/ebu-mxfsdk

#FIATIFTADubai2013 Replace  box  with    your  company  logo  D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata”

Page 21: Tools for mxf-embedded bucore metadata, Dieter Van Rijsselbergen, Jean-Pierre Evain  Limecraft, EBU

“TOOLS FOR MXF-EMBEDDED EBUCORE METADATA” Dieter Van Rijsselbergen, Jean-Pierre Evain Limecraft, EBU Get in contact: [email protected];"@limecraft

#FIATIFTADubai2013 D. V. Rijsselbergen; JP. Evain: “Tools for MXF-embeddded EBUcore metadata” Replace  box  with    your  company  logo  

Copyright  ©  of  this  presenta1on  is  the  property  of  the  author(s).  FIAT/IFTA  is  granted  permission  to  reproduce  copies  of  this  work  for  purposes  relevant  to  the  above  conference  and  future  communica1on  by  FIAT/IFTA  without  limita1on,  provided  that  the  author(s),  source  and  copyright  no1ce  are  included  in  each  copy.  For  other  uses,  including  extended  quota1on,  please  contact  the  author(s).