Man Linux: Main Page and Category List

NAME

       MP4Box - MPEG-4 Systems Toolbox

SYNOPSIS

       MP4Box [options] file [options]

DESCRIPTION

       MP4Box  is  a multi-purpose command line tool to create and edit MPEG-4
       Systems presentations and manipulate ISO-media files (MP4, 3GP, MOV).

       MP4Box  supports  file  conversion  from  various   raw   formats   and
       IsoMedia/AVI/MPEG-PS/OGG containers, file hinting for RTP streaming for
       QuickTime  compatible  streaming  servers,  file   interleaving,   file
       fragmentation and track extraction.

       MP4Box  also  provides dump tools used to inspect file layout, RTP hint
       tracks, SDP information, scene composition. It  may  also  be  used  to
       convert to and from BT/XMT-A/VRML/X3D.

       MP4Box  also features MPEG-4 Systems encoders and decoders for BIFS and
       OD tools.

       MP4Box doesn’t expect any particular order in options at prompt.

GETTING HELP WITH MP4Box

       -h [type]
              prints help screen. "type" can  be  one  of  "general",  "hint",
              "import",  "encode",  "extract", "dump", "swf", "meta", "crypt",
              "format" for specific help.

       -version
              prints version of MP4Box.

       -nodes lists supported MPEG-4 Systems nodes in MP4Box current build.

       -node NodeName
              prints the node syntax. Each field is listed as
              eventType fieldType fieldName defaultValue
              and field quantization information and  quantization  bounds  if
              any.

GENERAL OPTIONS

       -inter duration
              interleaves  media  data  in  chunks  of  the  maximum specified
              duration  (expressed  in  milliseconds)  and  prepare  file  for
              HTTP/FTP  streaming.  By  default  MP4Box always stores with 0.5
              second interleaving. An interleaving value of ’0’ stores without
              interleaving (meta-data then track after track).
              NOTE: Track Edit Lists are ignored when performing interleaving.

       -flat  stores file with all media data first, non interleaved. If  used
              when  creating  a new file, no temporary file is created (faster
              storage).

       -frag duration
              fragments file using ISO-Media movie fragments. Tracks  will  be
              fragmented  so  that no track run exceeds the specified duration
              (expressed in milliseconds). Disables interleaving.

       -out <filename>
              specifies output file name.

       -tmp <dirname>
              specifies driectory for temporary storage. If not set, temporary
              storage is OS-dependent.

       -nosys removes  all  MPEG-4 Systems information from the file but keeps
              an empty IOD for MPEG-4 Profile@Level indications.

       -isma  rewrites the file as an ISMA 1.0 Audio/Video file  (all  systems
              info rewritten) with proper clock references.

       -ismax rewrites  the  file as an ISMA 1.0 Audio/Video file (all systems
              info  rewritten)  with  ISMA  clock  references   (streams   not
              explicetly synchronized).
              NOTE:  Seeking  may  be broken with some players (in ISMA, audio
              and video streams do not depend on main scene clock).

       -3gp   rewrites the file as a 3GP file (no more MPEG-4 Systems specific
              info).  This  option  is  turned  on  by default when input file
              extension is .3gp or .3g2.

       -cprt string
              adds string copyright notice to file.

       -chap chap_file
              adds chapter information contained in chap_file  to  movie.  For
              more      details     on     chapter     file     syntax,     cf
              http://gpac.sourceforge.net/auth_mp4box.php.

       -rem trackID
              removes given track from file - can be specified multiple times.

       -new   forces creation of a new destination file.

       -lang [tkID=]LAN
              sets  the  language of all tracks or the given track. LAN is the
              ISO 639-2 3 character code.

       -delay [tkID=]delay_ms
              sets the delay in milliseconds of all tracks or the given track.
              LAN is the ISO 639-2 3 character code.

       -split time_in_seconds
              splits  in  files  of desired maximum duration. This will remove
              all MPEG-4 Systems media.

       -splits size_in_kilobytes
              splits in files of desired maximum size. This  will  remove  all
              MPEG-4 Systems media.

       -splitx start:end
              extracts  a  new  file  from  specified  start  to end times (in
              seconds). This will remove all MPEG-4 Systems media.  When input
              file  is  an  ISO-Media  file  (QT,  MP4,  3GP), if no output is
              specified THE INPUT FILE IS OVERWRITTEN.

HINTING OPTIONS

       -hint  hint  the  file  for   RTPRTSP   sessions.   Payload   type   is
              automatically  detected and configured unless forced through one
              of MPEG-4 Generic RTP payload.

       -mtu size
              specifies Maximum Transmission Unit size in  bytes  (eg  maximum
              RTP  packet  size).  Default  size is 1500 bytes (Ethernet MTU).
              This must be choosen carefully:  specifying  too  large  packets
              will result in undesired packet fragmentation at UDP layer while
              specifying too small packets will result in RTP header overhead.

       -copy  forces  hinted  data  to  be copied to the hint track instead of
              simply referenced. This speeds up RTP packet construction at the
              server side but results in much bigger files.

       -tight performs  sample-based  interleaving  of  media  tracks and hint
              tracks. This should reduce disk seeks at server side  (depending
              on server implementation) but results in a bigger file.

       -multi [maxptime]
              enables  Access  Units concatenation in RTP packets if possible.
              maxptime is optional and specifies the maximum  packet  duration
              in milliseconds (default 100).

       -rate ck_rate
              specifies  the  rtp rate in Hz when no default rate for payload.
              Default value is 90000 (MPEG rtp rates).

       -mpeg4 forces usage of the MPEG-4 generic  payload  whenever  possible.
              Media  tracks  without  a  mapping  to MPEG-4 Systems cannot use
              this.

       -latm  forces usage of the LATM payload for AAC audio.

       -static
              enables usage  of  static  RTP  payload  IDs  for  streams  with
              official  payload  IDs.  By  default  MP4Box always uses dynamic
              payload IDs for maximum interoperability,  some  players  having
              troubles with static ones.

       MPEG-4 Generic Payload Options (Experts only)

              -ocr   forces  all  media  tracks  in  the  file  to  be  served
              synchronized. This is  needed  because  most  streaming  servers
              don’t  support  desynchronized  tracks  in  a  single  file.  Be
              extremelly   carefull   when   designing   MPEG-4    interactive
              presentations  for streaming since you will have to take care of
              the streaming server capabilities... MP4Box  generates  warnings
              when  the  file  timeline  can be ambiguously interpreted by the
              server.

              -rap signals Access Units random access  flag  in  RTP  packets.
              This  is  usually  only  needed  for streaming of MPEG-4 Systems
              streams.

              -ts signals Access Units  Time  Stamps  (CTS  and  DTS)  in  RTP
              packets.

              -size signals Access Units size in RTP packets.

              -idx  signals  Access  Units  indexes  (sequence numbers) in RTP
              packets.

              -multi enables Access Units concatenation in RTP  packets  (-ts,
              -size and -idx are selected if needed).

              -iod  prevents  system  tracks  embedding in IOD (ISMA-like IOD)
              when generating in SDP. MP4Box automatically  detects  ambiguous
              (ISMA/non-ISMA)  files  but  nobody’s perfect. This shouldn’t be
              used with -isma option.

       -sdp_ex string
              adds string to movie SDP or track SDP (tkID:string,  where  tkID
              is the OD of the hint track or its media track). This takes care
              of SDP line reordering, but not of SDP content validity.

       -unhint
              removes all hint tracks and other hinting info from the file.

IMPORT OPTIONS

       -add <src_file>
              adds all src_file tracks to  input  file,  creating  it  if  not
              exisiting.  Up  to  20  cumulated  -add  operations can be used.
              Supported syntaxes are:
              file#video: imports first video track from src_file.
              file#audio: imports first audio track from src_file.
              file#trackID=ID or file#ID: imports given trackfrom src_file. To
              get a listing of tracks in input file, use -info [ID]
              [;lang=LAN]: specifies language of imported media.
              [;delay=delay_ms]:  specifies  initial  delay in milliseconds of
              imported media.

       -cat <src_file>
              concatenates all src_file tracks to input file, creating  it  if
              not  exisiting.  Media  samples are added at the end of existing
              compatible tracks. If no compatible track is found for  a  media
              it  is  created. Up to 20 cumulated -cat operations can be used.
              Syntax is the same as -add.

       -keepsys
              by default all MPEG-4 systems media are removed  with  -add  and
              -cat. This option will avoid removing them from final file.

       -dref  keeps  media  data in original file an only imports meta-
              data (frame timing, size and random access).

       NOTE   Data referencing  may  fail  with  some  AVI  because  it
              requires  the  framed  data  (eg  an  MP4  sample)  to be
              continuous in the original file, which is not always  the
              case depending on the original interleaving.

       -nodrop
              forces  constant FPS when importing AVI video. By default
              non coded frames (n-vop)  are  removed  at  import  time,
              resulting in a variable frame-rate media.

       -packed
              for  CMP/M4V (raw MPEG-4 Visual), forces packed-bitstream
              mode (removes all n-vops and  import  at  constant  frame
              rate).

       -sbr   imports   AAC   as   AAC-SBR,  with  backward  compatible
              signaling (non AAC-SBR decoders should be  able  to  play
              it).

       -sbrx  imports  AAC  as  AAC-SBR,  with  non-backward compatible
              signaling (non AAC-SBR decoders will not be able to  play
              it).

       -fps FrameRate
              overrides  the input video frame rate or specifies it for
              SUB subtitles.

       -mpeg4 forces using MPEG-4 sample descriptions rather  than  3GP
              ones (3GP2 QCELP/EVRC/SMV audio only).

       -agg N aggregates  N  audio frames in 1 sample (3GP media only).
              Maximum possible value is 15, and default value is 1  (no
              aggregation).

ENCODING OPTIONS

       -mp4   specifies  input  file  is for encoding. Supported inputs
              are  BT/XMT-A/WRL/SWF  files.  Output  file  name  is  by
              default  the  input  file  name  without  extensions plus
              ".mp4" extension.

       -def   encodes DEF’ed nodes and routes with their textual names.

       -log   generates BIFS encoder log file.

       -ms file
              specifies  file for track importing - by default FILE.mp4
              is used when encoding FILE.bt  (in-place  rewrite).  This
              option  is  only  needed  if  you  don’t provide a proper
              muxInfo per stream in the BT/XMT file.

       -sync time
              forces BIFS random access  point  generation  every  time
              milliseconds.  Cannot be used with -shadow. WARNING: this
              may result in weird behavior of your presentation since a
              BIFS  random  access  point  restarts all media currently
              running in the scene (EXPERTS ONLY -  DANGEROUS).  Cannot
              be used with -shadow.

       -shadow time
              forces  BIFS shadow random access points generation every
              time  milliseconds.  Shadow  samples  are  random  access
              points  that  can  be  used  instead of non random access
              points when seeking. WARNING: this may be  not  supported
              by  some  players  (EXPERTS  ONLY - DANGEROUS). Cannot be
              used with -sync.

       -inctx file
              specifies  initial  context   (MP4/BT/XMTA)   for   chunk
              processing.  Input file must then be a command-only file:
              no IOD, and no implicit commands (commands without ’AT’).

       -outctx file
              specifies output file of updated context (MP4/BT/XMTA) in
              chunk processing mode. This is optional, chunk processing
              doesn’t need to store the final context.

EXTRACTING OPTIONS

       -raw TrackID
              extracts given track in native format when supported.

       -raws TrackID
              extract  each  track  sample to a file. Note: ’TrackID:N’
              extracts Nth sample of the track.

       -nhnt TrackID
              extracts given track in  NHNT  format.  All  track  types
              except ObjectDescriptors tracks can be exported.

       -single TrackID
              extracts  given  track  to  a  new mp4 file with a single
              track.

       -avi TrackID
              extracts visual track to an avi file.

       -qcp TrackID
              same as ’-raw’ but defaults to QCP file format  for  AVRC
              and SMV audio codecs.

       -aviraw TK
              extracts  AVI  track  to its raw format. TK can be one of
              "video", "audio" or "audioN" for  multi-track  avi  files
              (cf ’-info’).

DUMP OPTIONS

       -info [TrackID]
              prints   movie   and   tracks   information.  If  TrackID
              specified, dumps only extended track info. If input  file
              is not an IsoMedia file, lists known tracks for import.

       -bt    dumps  complete  scene  in  a  BT  file. This will remove
              unknown MPEG4 nodes.

       -xmt   dumps complete scene in an XMT-A file. This  will  remove
              unknown MPEG4 nodes.

       -wrl   dumps  complete  scene  in  an VRML97 WRL file. This will
              remove unknown VRML97 nodes.

       -x3d   dumps complete scene in an X3D XML file. This will remove
              unknown X3D nodes.

       -x3dv  dumps  complete  scene  in  an X3D Text (VRML) file. This
              will remove unknown X3D nodes.

       -diso  creates XML image of the file atoms.

       -drtp  creates XML image of all hint tracks samples of a  hinted
              mp4 file.

       -dcr   creates  XML  image  of all ISMACryp tracks samples of an
              mp4 file.

       -sdp   creates SDP file associated with a hinted mp4 file.

       -ttxt  converts input subtitle to GPAC TTXT format.

       -ttxt trackID
              exports given text track to GPAC TTXT format.

       -srt   converts input subtitle to SRT format.

       -srt trackID
              exports given text track to SRT subtitle format.

       -std   dumps to stdout rather than file.

       -stat  generates statitistic report on node/field usage for  the
              whole presentation.

       -stats generates  statistic  report on node/field usage per BIFS
              Access Unit.

       -statx generates statistic report on  node/field  usage  in  the
              scene graph after each BIFS Access Unit.

Meta OPTIONS

       MP4Box  supports the Meta addition to IsoMedia file format, used
       to make the file a generic data container (timed or untimed).

       -set-meta args
              sets meta object type. Syntax is "ABCD[;tk=N] where:
              ABCD is the four character code of the type, or O/NULL to
              remove the meta object
              tk  indicates  whether  the meta is at the root level (no
              "tk"), at the moov level (tk=0) or  at  the  track  level
              (tk=trackID).

       -add-item args
              adds  resource  to  the given meta. args is the item file
              path followed by ’;’ separated options:
              tk=N: same as above
              name=item_name: specifies the item name,  otherwise  file
              name is used
              mime=mimeType:  specifies  the  item mime type, otherwise
              application/octet-stream is used
              encoding=enctype: specifies  the  content  encoding  type
              Note that file path set to "this" or "self" will identify
              the item added as the whole IsoMedia file

       -rem-item args
              removes item from given meta. Syntax is itemID[;tk=ID].

       -set-primary args
              sets given item as the primary one  of  the  given  meta.
              Syntax is itemID[;tk=ID].

       -set-xml args
              sets    XML    to    the    given    meta.    Syntax   is
              xml_file_path[;tk=ID][;binary].

       -rem-xml [tk=ID]
              removes XML data from the given meta.

       -dump-xml xml_out_file_name[;tk=ID]
              dumps the XML data of the given meta to a file.

       -dump-item itemID[;tk=ID][;path=fileName]
              dumps the given item of the the given meta to a file.  By
              default the item name is used as the output file name.

SWF OPTIONS

       MP4Box  can  import very simple Macromedia Flash files (".SWF").
       You can specify  a  SWF  input  file  with  -bt,  xmt  and  -mp4
       switches.

       -static
              all  SWF  defines  are  placed in first scene replace. By
              default SWF defines are sent when needed.

       -ctrl  uses a dedicated stream for movie control (forces -static
              option).

       -notext
              removes all SWF text.

       -nofont
              removes  all  embedded SWF Fonts, forcing usage of MPEG-4
              Text and terminal fonts.

       -noline
              removes all lines from SWF shapes.

       -nograd
              removes all gradients from swf shapes.

       -quad  uses quadratic bezier curves instead of cubic ones.

       -xlp   support for lines transparency and scalability.

       -flatten Value
              replaces 2 consecutive lines by a single one  when  angle
              between  lines is less than Value (expressed in radians).
              Value 0 disables flattening.

SUPPORTED INPUT FORMATS

       RAW Formats and extensions

              NHNT (.media .nhnt .info)
              MPEG Audio (.mp3)
              ADTS-AAC (.aac)
              MPEG-4 Visual (.cmp .m4v)
              H263 Video (.263 .h263)
              AVC/H264 Video (.h264 .h26L .264 .26L)
              JPEG Images (.jpg .jpeg)
              PNG Images (.png)
              AMR(WB) Audio (.amr .awb)
              EVRC Audio (.evc)
              SMV Audio (.smv)

       Container Formats and extensions

              AVI (.avi)
              MPEG-PS (.mpg .mpeg .vob .vcd .svcd)
              QCP (.qcp)
              OGG (.ogg)
              ISO-Media files (no extension checking)

       Text Formats and extensions

              SRT Subtitles (.srt)
              SUB Subtitles (.sub)
              GPAC Timed Text (.ttxt)
              QuickTime TeXML Text (.xml)  (cf QT documentation)

       Scene Formats and extensions

              MPEG-4 XMT-A (.xmt .xmta .xmt.gz .xmta.gz)
              MPEG-4 BT (.bt .bt.gz)
              VRML (.wrl .wrl.gz)
              X3D-XML (.x3d .x3d.gz)
              X3D-VRML (.x3dv .x3dv.gz)
              MacroMedia Flash (.swf) - very  limitted  import  support
              only

COMMON USAGE

       Importing a file

              Import an AVI: MP4Box -add myfile.avi mymp4.mp4
              Import  audio  from  an AVI: MP4Box -add myfile.avi#audio
              mymp4.mp4
              Import video from an AVI:  MP4Box  -add  myfile.avi#video
              mymp4.mp4
              Import  an  MP3 and leave data outside: MP4Box -dref -add
              myfile.mp3 mymp4.mp4
              Import a JPEG or PNG: MP4Box -add myfile.jpg mymp4.mp4
              Create a movie with subtitle: MP4Box -add video.avi  -add
              audio.mp3 -add Subtitle.srt mymp4.mp4

       Base File operations

              Convert  file  for HTTP/FTP streaming: MP4Box -inter 1000
              myfile.mp4
              Convert unknown file  to  ISMA  for  HTTP/FTP  streaming:
              MP4Box -isma -inter 1000 myfile.mp4
              Convert  unknown  file  to  ISMA  and respect ISMA broken
              sync: MP4Box -ismax myfile.mp4
              Convert unknown file to 3GP : MP4Box -3gp myfile.mp4

       Hinting a File

              Prepare any mp4 for ISMA streaming:  MP4Box  -isma  -hint
              myfile.mp4
              Prepare any 3GP for streaming: MP4Box -hint myfile.3gp
              Prepare  any  3GP  for  streaming  with RTP aggregation :
              MP4Box -hint -multi myfile.3gp
              Prepare a simple audio/video mp4  optimized  for  server:
              MP4Box -hint -copy -tight myfile.mp4
              Prepare  a  complex  mp4  with BIFS for streaming: MP4Box
              -ocr -iod -hint myfile.mp4

       Encoding/Decoding a file

              Encode  a  BT  file  and  keep  node  names   for   later
              inspection: MP4Box -mp4 -def pres.bt
              Encode a XMT-A file: MP4Box -mp4 pres.xmt
              Translate BT to XMT-A file: MP4Box -xmt pres.bt
              Translate XMT-A to BT file: MP4Box -bt pres.xmt
              Decode MP4 to BT: MP4Box -bt pres.mp4

BUGS and OTHER HELP

       For bug reports, more information on BT or XMT-A formats or GPAC
       TTXT files or ISMACryp, MPEG-4 Systems usage and  more  help  on
       MP4Box      please      visit      the     GPAC     web     site
       http://gpac.sourceforge.net

AUTHORS

       Jean   Le   Feuvre  <jeanlf@users.sourceforge.net>  -  GPAC  (c)
       2000-2005

SEE ALSO

       GPAC(1), MP4Client(1)