PDA

View Full Version : MP4 Container


David1105
22nd February 2008, 23:32
I have some MP4 files which have the first several bytes like the following:

...ftypMSNV...
...ftypisom...
...ftyp3gp4...
...ftypmp42...

Are they really Standard MP4 files? If so then why the bytes are different?

setarip_old
23rd February 2008, 00:06
Hi!

What programs did you use to create these files?

David1105
23rd February 2008, 00:10
People uploaded to my site.

Drachir
23rd February 2008, 14:54
I have some MP4 files which have the first several bytes like the following:

...ftypMSNV...
...ftypisom...
...ftyp3gp4...
...ftypmp42...

Are they really Standard MP4 files? If so then why the bytes are different?
This are formats based at the "ISO base media file format".

Main ftyp "msnv":
Files for the Sony PSP with some additional information in uuid boxes.

Main ftyp "isom":
Files created by different tools without MPEG-4 Systems information. (It would be better to use this files only temporary, not for final distribution. The ISO base media file format should only be used as basis for other specification like "qt ",mp42","m4v ","3gp6", ...)

Main ftyp "3gp4":
3gp file format(basic profile of 3GP - release 4)

Main ftyp "mp42":
MP4 file format version 2 (Should contain MPEG-4 Systems information,else an other main ftyp makes more sense.)

mediator
25th February 2008, 09:23
Main ftyp "mp42":
MP4 file format version 2 (Should contain MPEG-4 Systems information,else an other main ftyp makes more sense.)

"mp42" doesn't require the presence of MPEG-4 systems information. If, then at most mp41, which is the designator for the earlier version of MP4:

http://www.mp4ra.org/specs.html#MP4V2

Drachir
25th February 2008, 10:11
@mediator

For a file conformance to the "MP4 File Format"(ISO/IEC 14496-14) the Object Descriptor Framework is required.
A file without a Object Descriptor isn't a MP4 File.

If you don't want the Object Descriptor Framework, don't claim that the file is conformance to ISO/IEC 14496-14. Don't use "mp42" as main brand.

from ISO/IEC 14496-14:2003

5 This section defines the boxes, and track reference types, which are defined for use in this file format and are not defined in the ISO Base Media File Format.

5.1 Object Descriptor Box

Box Type: ‘iods’
Container: Movie Box (‘moov’)
Mandatory: No
Quantity: Zero or one
This object contains an Object Descriptor or an Initial Object Descriptor.

There are a number of possible file types based on usage, depending on the descriptor:

Presentation, contains IOD which contains a BIFS stream (MP4 file)

Sub-part of a presentation, contains an IOD without a BIFS stream (MP4 file)

Sub-part of a presentation, contains an OD (MP4 file)

Free-form file, referenced by MP4 data references (free-format)

Sub-part of a presentation, referenced by an ES URL.

NOTE - The first three are MP4 files, a file referenced by a data reference is not necessarily an MP4 file, as it is free-format. Files referenced by ES URLs, by data references, or intended as input to an editing process, need not have an Object Descriptor Box.


Or read the text about the "ISO Base Media File Format" and the "MP4 File Format" here: http://www.chiariglione.org/mpeg/technologies/mp04-ff/index.htm

MP4 File Format

MP4 files are generally used to contain MPEG-4 media, including not only MPEG-4 audio and/or video, but also MPEG-4 presentations. When a complete or partial presentation is stored in an MP4 file, there are specific structures that document that presentation.
MPEG-4 presentations are scenes, described by the scene language MPEG-4 BIFS. Within those scenes media objects can be placed; these media objects might be audio, video, or entire sub-scenes. Each object is described by an object descriptor, and within the object descriptor the streams that make up that object are described. The entire scene is described by an initial object descriptor (IOD). This is stored in a special box within the movie atom in MP4 files. The scene and the object descriptors it uses are stored in tracks — a scene track, and an object descriptor track; for files that comprise a full MPEG-4 presentation this IOD and these two tracks are required.
Each stream is described by an elementary stream descriptor. When a complete scene is delivered, these are delivered as part of the object descriptor stream. However, for ease of composition, and to manage files that contain only media streams, these elementary stream descriptors are stored with the media streams themselves — in the descriptive track structures — in MP4 files.


The main difference between other "ISO Base Media File Format" based formats, and the MP4 File Format is the "Object Descriptor Framework".

mediator
25th February 2008, 19:03
@Drachir: as cited by yourself from ISO 14496-14:

Box Type: ‘iods’
Container: Movie Box (‘moov’)
Mandatory: No
Quantity: Zero or one

If the MP4-spec says, iods is not mandatory, then I assume this is part of the definition of MP4. Whereas if you look in ISO 14496-1, you will see that 'iods' is declared as mandatory there.

Since the whole MP4 systems framework didn't really see a breakthrough in acceptance in the past years, I assume the question for iods is more a philisophical one anyway: I assume any of todays MP4 players doesn't mind if iods is not there (have never seen otherwise)

Drachir
25th February 2008, 19:33
Take a look at case 3:
Sub-part of a presentation, contains an OD (MP4 file)

This is a MP4 file, there is an Object Descriptor. But in the file himself is no IOD.
You can compare this with the "ctts" box, which is only needed with B-Frames.
The "ctts" box is also not mandatory.

About ISO/IEC 14496-1, the oldest version I have is from 2002 and there is the IOD also not mandatory.

It is true that the systems framework isn't used much, but that is no reason to create non standard conformance files.
There should be no problem to create a new file brand/specification based at ISO/IEC 144496-12 if there is no brand which fit with the use case of a company.
3GPP and Apple(iTunes) did it, why not Nero? The way it now is, is in my opinion half-baked.

mediator
25th February 2008, 21:02
Take a look at case 3:
Sub-part of a presentation, contains an OD (MP4 file)

This is a MP4 file, there is an Object Descriptor. But in the file himself is no IOD.


Can you establish step-by-step why a file without iods box should not be a valid MP4-file? I don't see how this could be concluded from case 3.

btw: according to you arguments MainConcept would also be producing non-compliant MP4-files, see e.g. their homepage.

I'm referring to the 2001 version of ISO 14496-1.

mediator
25th February 2008, 21:22
Regarding the ctts example: ctts is not mandatory in general, and taking this to iods, it would mean that iods is also not mandatory in general (so here we go).

btw: files from Sanyo Xacti camera's (major brand "mp42") also don't have "iods". And I think those files are perfectly ok and MP4-compliant.

Creating a longer list of counter-examples would just be a matter of time, I guess.

I think if iods would really be mandated by MP4, then the spec should tell so clearly. Right now it says "not mandatory".

Drachir
25th February 2008, 21:55
...
I think if iods would really be mandated by MP4, then the spec should tell so clearly. Right now it says "not mandatory".

Well, I didn't expected to convince you from the need of the OD framework, if the main brand is set to "mp42". I don't say that it make sense in every use case. But if you don't need it, use an other main brand/specification(my opinion).

I don't think that a audio/video file(main ftyp "mp42") without IOD(OD framework) is spec compliant, but there we have a diffrent opinion.

I see no need for a MP4 file without OD framework, you could also use the QuickTime file format or the Matroska file format.

kylix999
15th October 2012, 11:35
can anyone tell me what words "isomavc1" and "isomavc1dash" mean ?
I was checking initialization file generated by gpac for mpeg dash content an I try to understand what actually those options mean. isomavc1dash is used by gpac, but I got some content with isomavc1 and does not work gpac reference player.

VFR maniac
17th October 2012, 20:06
isom: the file is compatible with features and structure of ISO Base Media file format version 1.
avc1: the file is compatible with features and structure of ISO Base Media file format version 1 + additional some features for AVC file format (ISO/IEC 14496-15) and MP4 file format (ISO/IEC 14496-14).
dash: the file is compatible with features and structure of ISO Base Media file format specifically designed for DASH (ISO/IEC 23009) including movie fragments and Segment Index.