[FFmpeg-devel] [PATCH] mp4 and ipod metadata

Michael Niedermayer michaelni
Wed Jun 11 17:15:11 CEST 2008

On Wed, Jun 11, 2008 at 02:55:47AM -0700, Baptiste Coudurier wrote:
> > That doesnt mean ipod tags should be in -f mp4 or -f mov but that
> > there is a -f foobar that contains all tags of all variants. I prefer
> > if i dont need to have each video 3 times so it can be played on 3
> > different players.
> I understand the need, Im afraid it's complicated.
> Unfortunately, it is so brainded to deal with all iso media variants and
> their fields having different meaning values that I tend to prefer
> constraining specific features to specific formats.
> I think that adding this ipod format was a good thing.

Could you point at a few examples were fields have different meaning
between mp4 types (not mp4 vs. mov)?

Besides, quoting ISO/IEC 14496-12:2005(E)
A media-file structured to this part of this specification may be compatible with more than one detailed
specification, and it is therefore not always possible to speak of a single type or brand for the file. This
means that the utility of the file name extension and mime type are somewhat reduced.

This box must be placed as early as possible in the file (e.g. after any obligatory signature, but before any
significant variable-size boxes such as a Movie Box, Media Data Box, or Free Space). It identifies which
specification is the best use of the file, and a minor version of that specification; and also a set of other
specifications to which the file complies. Readers implementing this format should attempt to read files that
are marked as compatible with any of the specifications that the reader implements. Any incompatible change
in a specification should therefore register a new brand identifier to identify files conformant to the new

The ftyp we currently store does not correctly list the specifications to
which it complies, it just stores one spec. Probably duplicating what the
person implementing it saw in some hex editor from some similar file from
somewhere ...

The correct way to do it IMHO is to first make a list of specs the current
instance conforms to (based on streams -f and so on)
and then store them ALL with the "best" as major brand
That is what the spec says IMHO

C.2 General Principles
A number of existing file formats use the ISO Base Media File Format, not least the MPEG-4 MP4 File Format,
and the Motion JPEG 2000 MJ2 File Format. When considering a new specification derived from the ISO
Base Media File format, all the existing specifications should be used both as examples and a source of
definitions and technology. In particular, if an existing specification already covers how a particular media
type is stored in the file format (e.g. MPEG-4 video in MP4), that definition should be used and a new one
should not be invented. In this way specifications which share technology will also share the definition of how
that technology is represented.

Be as permissive as possible with respect to the presence of other information in the file; indicate that
unrecognized boxes and media may be ignored (not "should be ignored"). This permits the creation of hybrid
files, drawing from more than one specification, and the creation of multi-format players, capable of handling
more than one specification.
4.2 Object Structure
Boxes with an unrecognized type shall be ignored and skipped.
Boxes with an unrecognized version shall be ignored and skipped.
Thus the extra stuff for ipod is perfectly within the specs IMHO

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

While the State exists there can be no freedom; when there is freedom there
will be no State. -- Vladimir Lenin
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20080611/acb05373/attachment.pgp>

More information about the ffmpeg-devel mailing list