The practical side of extracting technical metadata.

Jérôme Martinez, MediaArea

MDN Worskshop - June 2017

What is MediaInfo?

MediaInfo is a convenient unified display of the most relevant technical and tag data for video and audio files.

Supported metadata sources

  • Container-specific
  • Ancillary data
  • Time codes (MXF, GXF, QuickTime...)
  • Bar data
  • AFD
  • AS-11/DPP
  • RDD18/EBU Tech 3349 Acquisition Metadata
  • BWF "bext"
  • ...

Examples of Metadata

  • Width, height, frame rate, interlacement, bit depth, color space, subsampling, MXF version & OP, ...
  • Writing library
  • Channel assignment (left, right, rear...)
  • Audio/caption language
  • Law rating
  • Broadcast service name
  • Checksums presence
  • ...

Export formats

  • Flat text
  • XML
  • EBUCore (1.5/1.6/1.8)
  • PBCore (1.2/2.0)
  • MPEG-7
  • FIMS (1.1/1.2)


  • Permissive license (BSD-2-Clause)
  • Code source available for everyone
  • Contacting developer not mandatory
  • Can be included in any (Open Source or not) software

Business model

  • For free: Software & developed features
  • Not for free: Bug correction
  • Not for free: New features
  • Not for free: Support/forensics

Easy parts:

  • Video: width, height, frameRate, aspectRatio...
  • Audio: channels, sampleSize, samplingRate...
  • Captioning
  • Timecode: timecodeStart...
  • Commom: bitRate, bitRateMode, trackId, language...

Maintenance issues:

  • videoEncoding
    • a good start:
    • But... Example: missing H265/HEVC

Missing parts

  • timecodeEncoding? TimecodeCompressionCode? No...
    • MXF has time code in an MXF track, or SDTI, or ANC, or Line21
    • How to show the difference in a standard manner?

Mapping issues:

  • codecIdentifier
    • Which one?
    • For MXF, we arbitrary choose
      without first part of UMID
  • fileName
    • External files?
    • IMF: sometimes several files for 1 track, several tracks

No specific place:

  • OP-xx, wrapping mode, channels layout, color space, chroma subsampling, transfer characteristics, HDR, BWF OriginatorReference, BWF History, BWF TimeReference...
  • Where?
  • EBUCore:technicalAttribute with MediaInfo field names (=arbitrary)
  • Not all for the moment, we selected some metadata requested by some users

Huge metadata:

  • acquisitionData
  • Content per frame
  • Where? EBU updated EBUCore 1.8 specs with an acquisitionData part; FIMS?
  • Which strategy? parameter name then time slices? time slices then parameter name?
  • We offer both

Complex metadata

  • AS-11/DPP
    • First we map to MediaInfo format
    • Then from MediaInfo format to EBUCore/FIMS
    • Do we lose information during conversion? We think we don't.
    • But we use EBUCore:technicalAttribute (our field names)

Dolby E

  • Different "Muxing mode"
    • Several services in 1 stream
    • 1 stream in 1 track, 2 half-tracks, 2 streams in 1 track...
  • Player support depends on such detail
    • How to show that?
    • trackId for such coupound data?

Extending EBUCore/FIMS

  • EBUCore:technicalAttribute
    • Good for prototyping!
    • If there is interest, better to have a standard EBUCore/FIMS element name
  • EBUCore and FIMS are similar
    • Why 2 formats?
    • Why not including EBUCore metadata in FIMS?

Extending EBUCore/FIMS (2)

  • "Many forms of Government have been tried, and will be tried in this world of sin and woe. No one pretends that democracy is perfect or all-wise. Indeed it has been said that democracy is the worst form of Government except for all those other forms that have been tried from time to time." (Churchill)
  • Same for EBUCore
  • Let's improve it together!
  • Which technical metadata do you need?

Stay in touch

MediaArea:, @MediaArea_net


Jérôme Martinez:


License (except images): CC BY