2011 ECM-EDM Metadata Hands-on Workshop<br />Use Cases for MXF Metadata and Simplified System Interaction<br />Dieter Van ...
Agenda<br />Limecraft?<br />Our platform<br />Assumptions<br />Our use cases for MXF and its metadata<br />How to obtain/m...
From ‘Digitisation’ to a ‘Software as a Service’<br />Limecraft<br />Digital Silos<br />Corporate Systems<br />Corporate  ...
Limecraft Platform – Infrastructure<br />Digital Supply Building Blocks<br />Integrated Production Processes<br />Producti...
Limecraft – Application Platform<br />Digital Supply Building Blocks<br />Integrated Production Processes<br />Production-...
Limecraft Platform  –    User is Key<br />Editorial<br />Consumption<br />Feedback en Opinion<br />Structure of the Conten...
Limecraft – The Big Picture<br />
Limecraft Platform – Assumptions<br />File-based production facility<br />Metadata-based production facility<br />Use of m...
Limecraft Platform – Assumptions<br />Focus<br />Drama, Docu, Magazines, …<br />From concept to multi-channel distribution...
Metadata Today<br />Talked about metadata<br />Automatic metadata extraction<br />Analyze images/sound and try to deduce m...
Metadata Today<br />What about acquisition metadata?<br />about acquisition device<br />e.g., EBU Tech 3349<br />about rec...
Metadata Today<br />How about later on in the production process?<br />Metadata exchange! <br /><ul><li>In-band /w essence
Tightly coupled and doesn’t get lost
Often optimized for essence storage
Out-of-band
Centrally stored
Optimized for metadata (search, augmentation, …)</li></li></ul><li>Use cases for MXF metadata<br />Metadata from incoming ...
Use cases for MXF metadata<br />Metadata from incoming MXF files<br />Retrieve associated descriptive metadata<br />
Use cases for MXF metadata<br />Metadata from incoming MXF files<br />Will ingested MXF files actually contain descriptive...
Use cases for MXF metadata<br />Add custom descriptive metadata?<br />E..g.,<br />Add in a way that it is not dark for eve...
Use cases for MXF metadata<br />Add custom descriptive metadata?<br />Application Plug-ins in 2009 revision of 377M<br />
Use cases for MXF metadata<br />Add custom descriptive metadata?<br />Application Plug-ins in 2009 revision of 377M<br />N...
MXF in Practice<br />Most techniques seen today deal with metadata in a high-level representation<br />Think XML (incl. MP...
MXF in Practice - High-level access?<br />SMPTE 434-2006: Material Exchange Format – XML Encoding for Metadata and File St...
MXF in Practice - High-level access?<br />SMPTE 434-2006: Material Exchange Format – XML Encoding for Metadata and File St...
MXF in Practice – Full-featured access<br />Usually: MXF => C/C++<br />Libraries written in C/C++<br />MXF::SDK, MXFTk, mx...
Simplifying MXF Manipulation<br />Start from a C/C++ toolkit<br />Reuse toolkit speed<br />Leverage existing work<br />Use...
A work-in-progress SWIG wrapper for mxflib<br />SWIG typically builds a target runtime extension (DLL/SO)<br />In our case...
Upcoming SlideShare
Loading in …5
×

Use Cases for MXF Metadata and Simplified System Interaction

2,173 views

Published on

Presentation given by Limecraft at the 2011 ECM-EDM Metadata Hands-on Workshop organised by the EBU.

We talked about simplified ways of obtaining and manipulating Material eXchange Format (MXF) metadata using existing toolkits and standards.

Published in: Technology
  • Be the first to comment

Use Cases for MXF Metadata and Simplified System Interaction

  1. 1. 2011 ECM-EDM Metadata Hands-on Workshop<br />Use Cases for MXF Metadata and Simplified System Interaction<br />Dieter Van Rijsselbergen<br />www.limecraft.com<br />dieter.vanrijsselbergen@limecraft.com<br />
  2. 2. Agenda<br />Limecraft?<br />Our platform<br />Assumptions<br />Our use cases for MXF and its metadata<br />How to obtain/manipulate this metadata in practice<br />SMPTE 434-2006<br />Wrapping mxflib<br />
  3. 3. From ‘Digitisation’ to a ‘Software as a Service’<br />Limecraft<br />Digital Silos<br />Corporate Systems<br />Corporate Network<br />Media Asset Management enable re-use and collaboration, but expensive seats are used for both demanding and basic editing tasks<br />Digitisation enables increased functionality<br />Limecraft offers a user-friendly platform where seats and storage volumes are available on demand<br />Central<br />Media Asset Mgnt<br />Access via Internet<br />Limecraft Platform<br />Infrastructure<br />
  4. 4. Limecraft Platform – Infrastructure<br />Digital Supply Building Blocks<br />Integrated Production Processes<br />Production-Grade Application Platform<br />Image courtesy of CandIT-media<br />Digital Asset Mgnt<br />Media Data Center Solution<br />(network, storage and embedded services)<br />
  5. 5. Limecraft – Application Platform<br />Digital Supply Building Blocks<br />Integrated Production Processes<br />Production-Grade Application Platform<br />Digital Asset Mgnt<br />Media Data Center Solution<br />(network, storage and embedded services)<br />
  6. 6. Limecraft Platform – User is Key<br />Editorial<br />Consumption<br />Feedback en Opinion<br />Structure of the Content<br />Selection of the Cnotents<br />User-Generated Content<br />Tagging en Markup<br />Production<br />Master Control<br />Post-Production<br />Digital Supply Building Blocks<br />Integrated Production Processes<br />Production-Grade Application Platform<br />Digital Asset Mgnt<br />Media Data Center Solution<br />(network, storage and embedded services)<br />
  7. 7. Limecraft – The Big Picture<br />
  8. 8. Limecraft Platform – Assumptions<br />File-based production facility<br />Metadata-based production facility<br />Use of manually created metadata<br />Script, run-down, continuity, …<br />Use of automatically generated metadata<br />Segmentation, detection, …<br />cf. ECM SCAIE<br />Service Oriented Architecture?<br />
  9. 9. Limecraft Platform – Assumptions<br />Focus<br />Drama, Docu, Magazines, …<br />From concept to multi-channel distribution<br />No historical baggage, no legacy – Good<br />Basically, we’re starting from scratch – Hmm…<br />Must move forward as fast as possible!<br />
  10. 10. Metadata Today<br />Talked about metadata<br />Automatic metadata extraction<br />Analyze images/sound and try to deduce metadata post-factum (e.g. camera movement) or that eliminates manual labor (e.g. object detection/tracking)<br />Giving meaning to metadata<br />Define semantics in a standardized way<br />Correlation between heterogeneous metadata sets once their individual meaning is known<br />
  11. 11. Metadata Today<br />What about acquisition metadata?<br />about acquisition device<br />e.g., EBU Tech 3349<br />about recorded essence<br />workflow metadata available directly during/after recording<br />Typically muxed in with the recorded essence container<br />
  12. 12. Metadata Today<br />How about later on in the production process?<br />Metadata exchange! <br /><ul><li>In-band /w essence
  13. 13. Tightly coupled and doesn’t get lost
  14. 14. Often optimized for essence storage
  15. 15. Out-of-band
  16. 16. Centrally stored
  17. 17. Optimized for metadata (search, augmentation, …)</li></li></ul><li>Use cases for MXF metadata<br />Metadata from incoming MXF files<br />Construct a picture of the structural metadata<br />
  18. 18. Use cases for MXF metadata<br />Metadata from incoming MXF files<br />Retrieve associated descriptive metadata<br />
  19. 19. Use cases for MXF metadata<br />Metadata from incoming MXF files<br />Will ingested MXF files actually contain descriptive metadata in practice?<br />Metadata for MXF/metadata exchanges<br />Add descriptive metadata<br />Descriptive Metadata Scheme-1?<br />
  20. 20. Use cases for MXF metadata<br />Add custom descriptive metadata?<br />E..g.,<br />Add in a way that it is not dark for everyone else?<br />
  21. 21. Use cases for MXF metadata<br />Add custom descriptive metadata?<br />Application Plug-ins in 2009 revision of 377M<br />
  22. 22. Use cases for MXF metadata<br />Add custom descriptive metadata?<br />Application Plug-ins in 2009 revision of 377M<br />No custom dictionary support?<br />Foreign objects can be identified, but what about their semantics??<br />Where do we store the ontology (in-band)?<br />Solution in proposed SMPTE 377-2 – KLV Encoded Extension Syntax?<br />
  23. 23. MXF in Practice<br />Most techniques seen today deal with metadata in a high-level representation<br />Think XML (incl. MPEG-7), RDF, …<br />MXF is very much not a format that can be approached at high-level<br />Mostly a container for audiovisual essence<br />Low-level optimizations for speed<br />
  24. 24. MXF in Practice - High-level access?<br />SMPTE 434-2006: Material Exchange Format – XML Encoding for Metadata and File Structure Information<br />
  25. 25. MXF in Practice - High-level access?<br />SMPTE 434-2006: Material Exchange Format – XML Encoding for Metadata and File Structure Information<br />Lossless representation of MXF Structural/Descriptive/Dark metadata<br />Fully defined by a set of XML Schema docs<br />Use XPath expressions to obtain information<br />Use XLST to transform/format metadata input document<br />
  26. 26. MXF in Practice – Full-featured access<br />Usually: MXF => C/C++<br />Libraries written in C/C++<br />MXF::SDK, MXFTk, mxflib, …<br />Libraries accessible using C/C++<br />
  27. 27. Simplifying MXF Manipulation<br />Start from a C/C++ toolkit<br />Reuse toolkit speed<br />Leverage existing work<br />Use: open source mxflib1<br />Implement a wrapper to bridge to another language runtime<br />Extend with target language features<br />Target Language Runtime<br />Wrapper<br />mxflib<br />1http://sourceforge.net/projects/mxflib/<br />
  28. 28. A work-in-progress SWIG wrapper for mxflib<br />SWIG typically builds a target runtime extension (DLL/SO)<br />In our case for Ruby<br />Target Language Runtime<br />Wrapper<br />Wrapper Interface Definition:<br />mxflib.i<br />mxflib<br />SWIG<br />1http://www.swig.org/<br />
  29. 29. A work-in-progress SWIG wrapper for mxflib<br />Wrapper takes advantage of target language features<br />E.g., Ruby blocks<br />More productivity!<br />Packages.collect { |p| p.second.GetLink() }<br /> .select { |p| p.IsA(SourcePackage_UL) }<br /> .each {<br />// do things here...<br /> }<br />MDObjectULList::iteratoritPackages = Packages->begin();<br />while (itPackages!=Packages->end()) {<br />MDObjectPtr Package = (*itPackages).second>GetLink();<br /> if (Package->IsA(SourcePackage_UL)) {<br />// do things here...<br /> }<br />itPackages++;<br /> }<br />
  30. 30. A work-in-progress SWIG wrapper for mxflib<br />Still very much Work in Progress<br />Currently reading metadata<br />Writing must be tested (both wrapper and mxflib)<br />Building on open-source<br />Give the wrapper interface back to the community<br />Limited support for new MXF features in mxflib<br />A way to go until Application Plugin support<br />Maybe the commercial vendors?<br />
  31. 31. Conclusions<br />Valid reasons for use of MXF metadata in our production platform workflow<br />Carefully moving towards proper extensibility of MXF (descriptive) metadata<br />SMPTE 434-2006 can get you somewhere<br />Build upon plenty XML tooling available<br />Implementations??<br />MXF manipulation made easier<br />Avoid C/C++ directly and use higher-level languages<br />
  32. 32. http://www.limecraft.com<br />http://twitter.com/limecraft<br />dieter.vanrijsselbergen@limecraft.com<br />

×