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