MAWG | Relation | MPEG4 | How to do the mapping | Datatype | XPath | RDF tested |
---|---|---|---|---|---|---|
Descriptive Properties (Core Set) | ||||||
Identification | ||||||
identifier | N/A | N/A | N/A | |||
Rights | ||||||
copyright | exact | Copyright statement for the movie file content. | box type: cprt container: User Data Box 'udta' value: notice A UTF-8 or UTF-16 string. Can have multiple values with different language and country code designations. | N/A | Yes | |
Content description | ||||||
description | N/A | MP4 has no formal system. | N/A | N/A | ||
Technical Properties | ||||||
frameSize | exact | The width and height fields from the track header box of that track. moov.trak/tkhd.(width | height) | If requested for a movie, and there is only one video track, or if requested for a specific video track, the width and height of that track. | N/A | Yes | |
compression | exact | The four-character codes from the sample entry/ies in the track's sample description box (see ISO/IEC 14496-12). moov.track.mdia.minf.stbl.stsd.(sampleentry code) | Follow the box hierarchy inside the movie box, into each track/mdia/stbl/stsd, and then extract the 4-character codes from the sample entry or entries. | four character code(s) | N/A | Yes |
duration | exact | The duration field from the movie header (overall movie) or track header (for a track), divided by the timescale from the movie header. moov.mvhd.duration or moov.trak.tkhd.duration; divide by moov.mvhd.timescale | Find the movie header box (mvhd) and get the timescale field, and then retrieve the duration field from the movie or track header (mvhd, tkhd) as appropriate, and divide. | float (after division), rational (as stored) | N/A | Yes |
format | exact | video/3gpp (valid for all resources), audio/3gpp (if it is known the movie has no visual presentation) | static; but it may help to scan for the codecs used and supply those (RFC4281), the codecs parameter for bucket mime types) for 3GPP, MP4 and Movie files. | MIME type | N/A | Yes |
samplingRate | usually exact | In MP4 files, the field samplerate in the sample entry or entries for the movie tracks. This is a 16.16 integer with the fractional 16 bits restricted to be zero. moov.trak.mdia.minf.stbl.stsd.(sampleentry.sampleRate) | Find the samplerate 32-bit field in the sample entry, and right-shift 16 bits. | Integer | N/A | Yes |
frameRate | more general | The sample count from the sample size (stsz) box in the sample table, divided by the duration (see above). moov.trak.mdia.minf.stbl.stsz.sampleCount, divided by duration. | moov.mdia.stbl.stsz.samplecount / (moov.trak.tkhd.duration / moov.mvhd.timescale) | Rational, float | N/A | Yes |
averageBitRate | more specific or exact | Either (a.i) sum the top-level box sizes or (a.ii) find the file size from external means (e.g. file system) or (b) for each track, compute the total sample size (from the sample size table). Then divide by duration (computed above). | (a.i) sum over all top-level atoms(atom size) or (b) sum over all samples(moov.trak.mdia.mif.stbl.stsz( sampleSize ) (count also in the stsz box) | N/A | Yes | |
numTracks | exact | count( moov.trak ), find types by mapping moov.trak.mdia.hdlr. Standard types are: ‘vide’ Video track, ‘soun’ Audio track, ‘hint’ Hint track, ‘meta’ Timed Metadata track, ‘auxv’ Auxiliary Video track, but other types may be registered at www.mp4ra.org. | (count, type) tuples | N/A | Yes |
Note: in 3GPP and MP4 files, a single track may be addressed by track ID using the using the ISO/IEC 21000-17:2006 "ffp()" syntax (for example http://www.example.com/sample.3gp#ffp(track_ID=101)).