F4V is a flavor of MPEG-4, used for Adobe's "Flash video" when H.264 is the codec. Other than the format item, the technical properties are identical to MPEG-4. The full table is reproduced here for convenience. F4V files will also generally contain XMP metadata. Technical metadata from the native MPEG-4 locations should be preferred.
MAWG | Relation | F4V | How to do the mapping | Datatype | XPath | RDF tested |
---|---|---|---|---|---|---|
Descriptive Properties (Core Set) | ||||||
Identification | ||||||
identifier | N/A | N/A | N/A | |||
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 | no |
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 retreive 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/mp4 (valid for all resources), audio/mp4 (if it is known the movie has no visual presentation) | static | MIME type | N/A | yes |
samplingRate | 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 | no | |
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 | no |
Note: in MPEG-4 and F4V files, a single track may be addressed by track ID using the using the ISO/IEC 21000-17:2006 "ffp()" syntax.