1MP4(3)                      MP4 File Format Library                     MP4(3)
2
3
4

DESCRIPTION

6       The  MP4  library  provides  an  API  to create and modify mp4 files as
7       defined by ISO-IEC:14496-1:2001 MPEG-4 Systems.  This  file  format  is
8       derived from Apple's QuickTime file format that has been used as a mul‐
9       timedia file format in a variety of platforms and applications. It is a
10       very powerful and extensible format that can accomodate practically any
11       type of media.
12
13       The basic structure of an mp4 file is that the file is a container  for
14       one  or  more  tracks.  These tracks contain one type of media, such as
15       audio or video. Each track has its own timeline, samples,  and  proper‐
16       ties.  An  example  of a sample is a frame of video. The file describes
17       how to synchronize the timelines of the tracks and the aggregate  prop‐
18       erties of the tracks.
19
20       The MP4 library is focussed on providing an easy to use API for the mp4
21       file format. It has been used with an encoder, a server, a player,  and
22       a number of mp4 utilities. However, it may not be adequate for multime‐
23       dia editors that wish to work directly with mp4 files. It can  be  used
24       by  these  type  of  tools  to export an mp4 file. (The library is open
25       source so contributions of extensions to the library are welcome.)
26
27       In providing a easy to use API not all the information in the mp4  file
28       is  directly  exposed via the API. To accomodate applications that need
29       access to information not otherwise available via  the  API  there  are
30       file  and  track  level  generic get and set property routines that use
31       arbitary string property names. To use these routines you will need  to
32       be  familar  with the mp4 file specification or be willing to wade thru
33       the output of MP4Dump() to determine what  you  want.  See  MP4GetInte‐
34       gerProperty() for more details.
35

INVOCATION

37       The  libary  API is defined in <mp4.h> which includes all the necessary
38       dependent include files.
39
40       The MP4 library can be used by either C or C++  programs.  The  calling
41       convention  is  C, but if C++ is used then the default argument feature
42       of that language can be used.
43
44       For example:
45            MP4Create("foo.mp4", 0, 0, 0); /* OK in C++ and C */
46            MP4Create("foo.mp4"); /* OK in C++, ERROR in C */
47

EXAMPLES

49       See mpeg4ip/lib/mp4v2/util and mpeg4ip/lib/mp4v2/test for simple  exam‐
50       ple programs that use the MP4 library.
51
52       In particular:
53            mp4nullcreate.cpp
54            Program that creates an empty mp4 file.
55
56            mp4dump.cpp
57            Simple program to print a text version of an mp4 file
58
59            mp4extract.cpp
60            Program to read each track and sample and place them in a separate
61       file to ease inspection or recombination.
62
63            mp4broadcaster.cpp
64            Program to broadcast the hinted tracks of an mp4 file using RTP.
65
66            mp4nullvplayer.cpp
67            Program that reads the video track but doesn't actually render the
68       video.
69
70       For   more   complete   applications  that  use  the  MP4  library  see
71       mpeg4ip/server/mp4creator,         mpeg4ip/server/mp4live,          and
72       mpeg4ip/player/src.
73
74
75
76Cisco Systems Inc.                Version 0.9                           MP4(3)
Impressum