MP4Box is a console program isn't it? If so, it will not be difficult to integrate it. Could u provide me with some info on MP4Box (mainly about its command line usage)?
The general cmdline is:
MP4Box [option] input [option]
In Batchenc, I use:
mp4box -add <infile> -sbr <outfile.m4a>
From the DOS helpscreens:
MP4Box [option] input [option]
-h general: general options help
-h hint: hinting options help
-h import: import options help
-h encode: encode options help
-h meta: meta handling options help
-h extract: extraction options help
-h dump: dump options help
-h swf: Flash (SWF) options help
-h crypt: ISMA E&A options help
-h format: supported formats help
-nodes: lists supported MPEG4 nodes
-node NodeName: gets MPEG4 node syntax and QP info
-xnodes: lists supported X3D nodes
-xnode NodeName: gets X3D node syntax
-version: gets build version
General Options:
-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
-flat 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
-nosys removes all MPEG-4 Systems info except IOD (profiles)
* Note: Set by default whith '-add' and '-cat'
-isma rewrites the file as an ISMA 1.0 AV file
-ismax same as '-isma' and removes all clock references
-3gp 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
-new: forces creation of a new destination file
-rem trackID: removes track from file
-lang [tkID=]LAN: sets track language. LAN is the ISO 639-2 code (eng, und)
-delay tkID=TIME: sets track start delay in ms.
-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
-hint: hints the file for RTP/RTSP
-mtu size: specifies MTU size in bytes. Default size is 1500
-copy: copies media data to hint track rather than reference
* Note: speeds up server but takes much more space
-tight: performs tight interleaving (sample based) of hinted file
* Note: reduces server disk seek but increases file size
-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)
-mpeg4: forces MPEG-4 generic payload whenever possible
-latm: forces MPG4-LATM transport for AAC streams
-static: enables static RTP payload IDs whenever possible
* By default, dynamic payloads are always used
MPEG-4 Generic Payload Options
-ocr: forces all streams to be synchronized
* Most RTSP servers only support synchronized streams
-rap: signals random access points in RTP packets
-ts: signals AU Time Stamps in RTP packets
-size: signals AU size in RTP packets
-idx: signals AU sequence numbers in RTP packets
-iod: 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.
-unhint: removes all hinting information.
Suppported raw formats and file 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
Supported containers and file extensions:
AVI .avi
MPEG-PS .mpg .mpeg .vob .vcd .svcd
QCP .qcp
OGG .ogg
ISO-Media files no extension checking
Supported text formats:
SRT Subtitles .srt
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 .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)
MPEG-4 Scene Encoding Options
-mp4: specify input file is for encoding.
-def: 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
-log: 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
-outctx: specifies storage of updated context (MP4/BT/XMT)
Meta handling Options
-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
-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"
Importing Options
File importing syntax:
"#video" "#audio": base import for most AV files
"#trackID=ID": track import for IsoMedia and other files
":dur=D": imports only the first D seconds
":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
-keepsys: keeps all MPEG-4 Systems info when using '-add' / 'cat'
All the following options can be specified as default or for each track.
When specified by track the syntax is ":opt" or ":opt=val".
-dref: keeps media data in original file
-nodrop: forces constant FPS when importing AVI video
-packed: forces packed bitstream when importing raw ASP
-sbr: backward compatible signaling of AAC-SBR
-sbrx: non-backward compatible signaling of AAC-SBR
* Note: SBR AAC cannot be detected at import time
-fps FPS: forces frame rate for video and SUB subtitles import
* For raw H263 import, default FPS is 15
* For all other imports, default FPS is 25
-mpeg4: 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