Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
MP4(3)			    MP4	File Format Library			MP4(3)

       The  MP4	 library provides an API to create and modify mp4 files	as de-
       fined by	ISO-IEC:14496-1:2001 MPEG-4 Systems. This file format  is  de-
       rived from Apple's QuickTime file format	that has been used as a	multi-
       media file format in a variety of platforms and applications. It	 is  a
       very powerful and extensible format that	can accomodate practically any
       type of media.

       The basic structure of an mp4 file is that the file is a	container  for
       one or more tracks. These tracks	contain	one type of media, such	as au-
       dio or video. Each track	has its	own timeline, samples, and properties.
       An  example  of a sample	is a frame of video. The file describes	how to
       synchronize the timelines of the	tracks and the aggregate properties of
       the tracks.

       The MP4 library is focussed on providing	an easy	to use API for the mp4
       file format. It has been	used with an encoder, a	server,	a player,  and
       a number	of mp4 utilities. However, it may not be adequate for multime-
       dia editors that	wish to	work directly with mp4 files. It can  be  used
       by  these  type	of  tools  to export an	mp4 file. (The library is open
       source so contributions of extensions to	the library are	welcome.)

       In providing a easy to use API not all the information in the mp4  file
       is  directly  exposed via the API. To accomodate	applications that need
       access to information not otherwise available via  the  API  there  are
       file and	track level generic get	and set	property routines that use ar-
       bitary string property names. To	use these routines you will need to be
       familar	with the mp4 file specification	or be willing to wade thru the
       output of MP4Dump() to determine	what you want. See  MP4GetIntegerProp-
       erty() for more details.

       The  libary  API	is defined in <mp4.h> which includes all the necessary
       dependent include files.

       The MP4 library can be used by either C or C++  programs.  The  calling
       convention  is  C, but if C++ is	used then the default argument feature
       of that language	can be used.

       For example:
	    MP4Create("foo.mp4", 0, 0, 0); /* OK in C++	and C */
	    MP4Create("foo.mp4"); /* OK	in C++,	ERROR in C */

       See mpeg4ip/lib/mp4v2/util and mpeg4ip/lib/mp4v2/test for simple	 exam-
       ple programs that use the MP4 library.

       In particular:
	    Program that creates an empty mp4 file.

	    Simple program to print a text version of an mp4 file

	    Program to read each track and sample and place them in a separate
       file to ease inspection or recombination.

	    Program to broadcast the hinted tracks of an mp4 file using	RTP.

	    Program that reads the video track but doesn't actually render the

       For   more   complete   applications  that  use	the  MP4  library  see
       mpeg4ip/server/mp4creator,	  mpeg4ip/server/mp4live,	   and

Cisco Systems Inc.		  Version 0.9				MP4(3)


Want to link to this manual page? Use this URL:

home | help