2020-04-25 (土) 18:49:10更新



$ mp4box -version
MP4Box - GPAC version 0.4.1-DEV
GPAC Copyright: (c) Jean Le Feuvre 2000-2005
               (c) ENST 2005-200X
・raw streamとヘッダが分離した構造になっている。QuickTimeは上手に隠しているが、mp4boxはわりと剥き身。

General Options:

$ mp4box -h general

-inter time_in_ms?

interleaves file data (track chunks of time_in_ms)

  • * Note 1: Interleaving is 0.5s by default
  • * Note 2: a value of 0 disables interleaving


stores file with all media data first, non-interleaved

-frag time_in_ms?

fragments file (track fragments of time_in_ms)

  • * Note: Always disables interleaving

-out filename?

specifies output file name

  • * Note: By default input (MP4,3GP) file is overwritten

-tmp dirname?

specifies directory for temporary file creation

  • * Note: Default temp dir is OS-dependent


removes all MPEG-4 Systems info except IOD (profiles)

  • * Note: Set by default whith '-add' and '-cat'


rewrites the file as an ISMA 1.0 AV file


same as '-isma' and removes all clock references


rewrites as 3GPP(2) file (no more MPEG-4 Systems Info)

  • * Note 1: some tracks may be removed in the process
  • * Note 2: always on for *.3gp *.3g2 *.3gpp

-brand ABCD

sets major brand of file

-ab ABCD?

adds given brand to file's alternate brand list

-rb ABCD?

removes given brand from file's alternate brand list

-cprt string?

adds copyright string to movie

-chap file?

adds chapter information contained in file

-rem trackID:?

removes track from file


forces creation of a new destination file

-lang [tkID=]LAN:?

トラックの言語指定。"LAN"はISO 639-2 コードで指定 (eng, und)

-delay tkID=TIME:?


-split time_sec?

splits in files of time_sec max duration

  • * Note: this removes all MPEG-4 Systems media

-splits filesize?

splits in files of max filesize kB.

  • * Note: this removes all MPEG-4 Systems media

-splitx start:end?

extracts a new file from start to end (in seconds)

  • * Note: this removes all MPEG-4 Systems media

Hinting Options

$ mp4box -h hint


hints the file for RTP/RTSP

-mtu size:

specifies MTU size in bytes. Default size is 1500


copies media data to hint track rather than reference

  • * Note: speeds up server but takes much more space


performs tight interleaving (sample based) of hinted file

  • * Note: reduces server disk seek but increases file size

-multi [maxptime]:

-multi [maxptime]:   enables frame concatenation in RTP packets if possible
       maxptime:     max packet duration in ms (optional, default 100ms)

-rate ck_rate:

specifies rtp rate in Hz when no default for payload

  • * Note: default value is 90000 (MPEG rtp rates)


forces MPEG-4 generic payload whenever possible


forces MPG4-LATM transport for AAC streams


enables static RTP payload IDs whenever possible

  • * By default, dynamic payloads are always used

MPEG-4 Generic Payload Options


forces all streams to be synchronized

  • * Most RTSP servers only support synchronized streams


signals random access points in RTP packets


signals AU Time Stamps in RTP packets


signals AU size in RTP packets


signals AU sequence numbers in RTP packets


prevents systems tracks embedding in IOD

  • * Note: shouldn't be used with -isma option

-sdp_ex string:

adds sdp string to (hint) track ("-sdp_ex tkID:string") or movie. This will take care of SDP lines ordering

  • * WARNING: You cannot add anything to SDP, cf rfc2327.


removes all hinting information.

Importing Options;インポートオプション

$ mp4box -h import

File importing syntax:

  • "#video" "#audio": base import for most AV files
    • 大半のAVファイルの基本的なインポート
  • "#trackID=ID": track import for IsoMedia and other files
    • IsoMediaファイルなどからトラックをインポート
  • ":dur=D": imports only the first D seconds
    • 最初のD秒間だけをインポート
  • ":lang=LAN": sets imported media language code
    • 言語コードの指定
  • ":delay=delay_ms": sets imported media initial delay in ms
    • 冒頭のディレイの指定。単位ミリセカンド。

-add file:

add file tracks to (new) output file

-cat file:

concatenates file samples to (new) output file
* Note: creates tracks if needed

* Note:必要な場合は新しくトラックを追加する。


keeps all MPEG-4 Systems info when using '-add' / 'cat'

'-add' / 'cat'を使った時に、MPEG-4 Systems infoを全部キープする。







keeps media data in original file


forces constant FPS when importing AVI video



forces packed bitstream when importing raw ASP
raw ASPをインポートする際にpacked bitstreamを強制する。

※:packed bitstreamはAVIでBフレームを使う為のハッキングの一つ。複数フレームを1枚と偽ってデコーダバッファに進入させるもの。


backward compatible signaling of AAC-SBR


non-backward compatible signaling of AAC-SBR

  • * Note: SBR AAC cannot be detected at import time

-fps FPS:


  • raw H263:15
  • その他:25


-fps 23.976025


-fps 29.970030

※float型での指定がより正確。手許(MEncoderで吐いたraw x264のmux)では、23.976指定は23.975fpsとなり一時間程度の実写で地味に口と台詞がずれる。本来は-fps 24000:1001でも良いようだが、24000:1001は24000fps(超はやおくり)になる。詳細はこちら参照。


forces MPEG-4 sample descriptions when possible (3GPP2)

-agg N:

aggregates N audio frames in 1 sample (3GP media only)

  • * Note: Maximum value is 15 - Disabled by default

MPEG-4 Scene Encoding Options

$ mp4box -h encode


specify input file is for encoding.


encode DEF names

-sync time_in_ms:

forces BIFS sync sample generation every time_in_ms

* Note: cannot be used with -shadow

-shadow time_ms:

forces BIFS sync shadow sample generation every time_ms.

* Note: cannot be used with -sync


generates BIFS encoder log file

-ms file:

specifies file for track importing

Chunk Processing

-inctx file:

specifies initial context (MP4/BT/XMT)

* Note: input file must be a commands-only file


specifies storage of updated context (MP4/BT/XMT)

Meta handling Options

$ mp4box -h meta

-set-meta args:

sets given meta type - syntax: "ABCD[:tk=ID]"

* ABCD: four char meta type (NULL or 0 to remove meta)

* [:tk=ID]: if not set use root (file) meta
if ID is 0 use moov meta
if ID is not 0 use track meta

-add-item args:

adds resource to meta

* syntax: file_path + options (':' separated):
tk=ID: meta adressing (file, moov, track)
name=str: item name
mime=mtype: item mime type
encoding=enctype: item content-encoding type

* file_path "this" or "self": item is the file itself

-rem-item args:

removes resource from meta - syntax: item_ID[:tk=ID]

-set-primary args:

sets item as primary for meta - syntax: item_ID[:tk=ID]

-set-xml args:

sets meta XML data

* syntax: xml_file_path[:tk=ID][:binary]

-rem-xml [tk=ID]:

removes meta XML data

-dump-xml args:

dumps meta XML to file - syntax file_path[:tk=ID]

-dump-item args:

dumps item to file - syntax item_ID[:tk=ID][:path=fileName]

Extracting Options

$ mp4box -h extract

-raw TrackID:

extracts track in raw format when supported

-raws TrackID:

extract each track sample to a file

* Note: "TrackID:N" extracts Nth sample

-nhnt TrackID:

extracts track in nhnt format

-single TrackID:

extracts track to a new mp4 file

-avi TrackID:

extracts visual track to an avi file

-qcp TrackID:

same as '-raw' but defaults to QCP file for EVRC/SMV

-aviraw TK:

extracts AVI track in raw format $TK can be one of "video" "audio" "audioN"



$ mp4box -aviraw video /Volumes/XXX/XXX.avi 

h264 raw videoだけ抽出できた。

Extracting AVI video (format h264) to /Volumes/XXX/XXX_video.h264


$ mp4box -aviraw audio /Volumes/XXX/XXX.avi 

Dumping Options

$ mp4box -h dump


dumps to stdout instead of file

-info [trackID]

prints movie info / track info if trackID specified

* Note: for non IsoMedia files, gets import options


scene to bt format - removes unknown MPEG4 nodes


scene to XMT-A format - removes unknown MPEG4 nodes


scene VRML format - removes unknown VRML nodes


scene to X3D/XML format - removes unknown X3D nodes


scene to X3D/VRML format - removes unknown X3D nodes


scene IsoMedia file boxes in XML output


rtp hint samples structure to XML output


prints sample timing to text output


dumps SDP description of hinted file


ISMACryp samples structure to XML output


Converts input subtitle to GPAC TTXT format

-ttxt TrackID:

Dumps Text track to GPAC TTXT format


Converts input subtitle to SRT format

-srt TrackID:

Dumps Text track to SRT format


generates node/field statistics for scene


generates node/field statistics per MPEG-4 Access Unit


generates node/field statistics for scene after each AU

SWF Importer Options

$ mp4box -h swf

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


all SWF defines are placed in first scene replace

* Note: By default SWF defines are sent when needed


uses a dedicated stream for movie control

* Note: Forces '-static'


removes all SWF text


removes all embedded SWF Fonts (terminal fonts used)


removes all lines from SWF shapes


removes all gradients from swf shapes


uses quadratic bezier curves instead of cubic ones


support for lines transparency and scalability

-flatten ang:

complementary angle below which 2 lines are merged

* Note: angle '0' means no flattening

ISMA Encryption/Decryption Options

$ mp4box -h crypt

-crypt drm_file:

crypts a specific track using ISMA AES CTR 128

-decrypt [drm_file]

decrypts a specific track using ISMA AES CTR 128

* Note: drm_file can be omitted if keys are in file

-set-kms kms_uri

changes KMS location for all tracks or a given one.

* to adress a track, use 'tkID=kms_uri'

DRM file syntax for GPAC ISMACryp:

File is XML and shall start with xml header
File is a list of "ISMACrypTrack" elements (all at root)

ISMACrypTrack attributes are

TrackID: ID of track to en/decrypt
key: AES-128 key formatted (hex string '0x'+32 chars)
salt: CTR IV salt key (64 bits) (hex string '0x'+16 chars)

Encryption only attributes:

Scheme_URI: URI of scheme used
KMS_URI: URI of key management system

* Note: 'self' writes key and salt in the file
selectiveType: selective encryption type - understood values are:

"None": all samples encrypted (default)
"RAP": only encrypts random access units
"Non-RAP": only encrypts non-random access units
"Rand": random selection is performed
"X": Encrypts every first sample out of X (uint)
"RandX": Encrypts one random sample out of X (uint)

ipmpType: IPMP Signaling Type: None, IPMP, IPMPX
ipmpDescriptorID: IPMP_Descriptor ID to use if IPMP(X) is used

* If not set MP4Box will generate one for you


mp4box -h format

Suppported raw formats and file extensions: .nhnt .info
MPEG Audio.mp3
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

※.m4vはraw formatsとして扱う事に注意。Appleが使うコンテナフォーマットとしての.m4vはオープンソース的には混乱を招いた。ISO/IEC規格外の可能性大。参考

Supported containers and file extensions:

MPEG-PS.mpg .mpeg .vob .vcd .svcd
ISO-Media filesno extension checking

Supported text formats:

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

Supported Scene formats:

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





■Other Tools
MPEG Streamclip

About Wiki