MediaTrace is a technical report that expresses the binary architecture of a file as interpreted by MediaArea tools such as MediaInfo, starting in version 0.7.76, and MediaConch, starting in version 2015-07. Although MediaTrace reports may document any file format, the tools that generate it, MediaInfo and MediaConch, are optimized to report on audiovisual formats.
Many audiovisual formats are based on chunk-based storage where a block of data will either contain a data payload or other blocks. In QuickTime parlance these blocks are called atoms, in AVI “chunks”, and in Matroska, “elements”. MediaTrace will attempt to parse apart each block into subdivisions and report on their contents. Whether the source format specification calls it element, atom, chunk, or another term, MediaTrace will call it a
<block>. In MediaTrace the contents of the block are called
For instance, the television information chunk of a DPX file may be interpreted like this. Here a 120 byte block of data (the tv info dpx chunk) within a DPX file is parsed by mediainfo with its contained information categories as data elements which contain its information as expressed in the file with labelling and offset information.
<block offset="1920" name="Television information" size="128"> <data offset="1920" name="SMPTE time code">4294967295</data> <data offset="1924" name="SMPTE user bits">4294967295</data> <data offset="1928" name="Interlace" moreinfo="2:1 interlace">255</data> <data offset="1929" name="Field number">255</data> <data offset="1930" name="Video signal standard" moreinfo="Undefined">0</data> <data offset="1931" name="Zero">255</data> <data offset="1932" name="Horizontal sampling rate (Hz)">0.000</data> <data offset="1936" name="Vertical sampling rate (Hz)">0.000</data> <data offset="1940" name="Temporal sampling rate or frame rate (Hz)">0.000</data> <data offset="1944" name="Time offset from sync to first pixel (ms)">0.000</data> <data offset="1948" name="Gamma">0.000</data> <data offset="1952" name="Black level code value">0.000</data> <data offset="1956" name="Black gain">0.000</data> <data offset="1960" name="Breakpoint">0.000</data> <data offset="1964" name="Reference white level code value">0.000</data> <data offset="1968" name="Integration time (s)">0.000</data> <data offset="1972" name="Reserved for future use">(76 bytes)</data> </block>
In some cases where the contents of a block are unknown or simply containing a large binary payload then in lieu of displaying the full contents, it will be summarized by its size such as:
<data offset="2048" name="Data">(12441600 bytes)</data>
MediaTrace provides a relatively simple and generic structure to document the complex and diverse internal structure of audiovisual files. MediaInfo’s parsers determine how to label and dissect such data and therefore the MediaTrace values such as name or the granularity of the parsing many change over time. MediaArea makes an effort to keep the names used in MediaTrace consistent with the specifications that define the formats being parsed.
An XML Schema for MediaTrace is available at https://mediaarea.net/mediatrace/mediatrace.xsd. A data dictionary is also provided at DataDictionary.md. The development history for both the XML Schema and data dictionary are available at Github.
Sample files are also available on Github here.
mediainfo --Details=1 --Output=XML file.mov
mediaconch -tt -fx file.mov
For questions or more information about this project, contact the MediaArea team
Developed by MediaArea in collaboration with the Museum of Modern Art. MediaTrace is also developed as part of the MediaConch, a PREFORMA project, where it serves an integral role of communicating the architectural data of digital media for the purposes of conformance checking.
MediaTrace is licensed under the BSD 2-Clause license.
Copyright (c) 2002-2020 MediaArea.net SARL. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS “AS IS” AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.