mp4v2再学习 -- Linux 下安装说明
一、MP4v2 简介
C library and various command-line utilities which permit creation and modification of MP4 filesMP4v2 is an open source toolkit that provides an API to create and modify mp4 files as defined by ISO-IEC:14496-1:2001 MPEG-4 Systems.This file format is derived from Apple's QuickTime file format that has been used as a multimedia file format in a variety of platforms and applications. It is a very powerful and extensible format that can accommodate practically any type of media.MP4v2 was originally bundled with mpeg4ip library, but has been moved into its own maintained library due to a combination of the cessation of support of mpeg4ip and the usefulness of this library on its own.
翻译一下:
下载:Ubuntu_mp4v2_mp4 包含转MP4源码
二、MP4v2编译
1、查看 ./configure --help
# ./configure --help
`configure' configures MP4v2 2.0.0 to adapt to many kinds of systems.Usage: ./configure [OPTION]... [VAR=VALUE]...To assign environment variables (e.g., CC, CFLAGS...), specify them as
VAR=VALUE. See below for descriptions of some of the useful variables.Defaults for the options are specified in brackets.Configuration:-h, --help display this help and exit--help=short display options specific to this package--help=recursive display the short help of all the included packages-V, --version display version information and exit-q, --quiet, --silent do not print `checking...' messages--cache-file=FILE cache test results in FILE [disabled]-C, --config-cache alias for `--cache-file=config.cache'-n, --no-create do not create output files--srcdir=DIR find the sources in DIR [configure dir or `..']Installation directories:--prefix=PREFIX install architecture-independent files in PREFIX[/usr/local]--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX[PREFIX]By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.For better control, use the options below.Fine tuning of the installation directories:--bindir=DIR user executables [EPREFIX/bin]--sbindir=DIR system admin executables [EPREFIX/sbin]--libexecdir=DIR program executables [EPREFIX/libexec]--sysconfdir=DIR read-only single-machine data [PREFIX/etc]--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]--localstatedir=DIR modifiable single-machine data [PREFIX/var]--libdir=DIR object code libraries [EPREFIX/lib]--includedir=DIR C header files [PREFIX/include]--oldincludedir=DIR C header files for non-gcc [/usr/include]--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]--datadir=DIR read-only architecture-independent data [DATAROOTDIR]--infodir=DIR info documentation [DATAROOTDIR/info]--localedir=DIR locale-dependent data [DATAROOTDIR/locale]--mandir=DIR man documentation [DATAROOTDIR/man]--docdir=DIR documentation root [DATAROOTDIR/doc/mp4v2]--htmldir=DIR html documentation [DOCDIR]--dvidir=DIR dvi documentation [DOCDIR]--pdfdir=DIR pdf documentation [DOCDIR]--psdir=DIR ps documentation [DOCDIR]Program names:--program-prefix=PREFIX prepend PREFIX to installed program names--program-suffix=SUFFIX append SUFFIX to installed program names--program-transform-name=PROGRAM run sed PROGRAM on installed program namesSystem types:--build=BUILD configure for building on BUILD [guessed]--host=HOST cross-compile to build programs to run on HOST [BUILD]Optional Features:--disable-option-checking ignore unrecognized --enable/--with options--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)--enable-FEATURE[=ARG] include FEATURE [ARG=yes]--disable-debug disable debugging compilation--disable-optimize disable optimizing compilation--disable-fvisibility disable use of -fvisibility--disable-gch disable GCC precompiled-headers--disable-largefile disable LFS (large file support)--disable-util disable build of command-line utilities--enable-bi=ARCH enable -mARCH for bi-arch compilation--enable-ub[=ARCHS] enable -arch ARCH for universal-binaries (OSX only)--enable-cygwin-win32 when building with Cygwin use -mwin32--enable-mingw-threads when building with MinGW use -mthreads--disable-dependency-tracking speeds up one-time build--enable-dependency-tracking do not reject slow dependency extractors--enable-shared[=PKGS] build shared libraries [default=yes]--enable-static[=PKGS] build static libraries [default=yes]--enable-fast-install[=PKGS]optimize for fast installation [default=yes]--disable-libtool-lock avoid locking (might break parallel builds)Optional Packages:--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)--with-pic try to use only PIC/non-PIC objects [default=useboth]--with-gnu-ld assume the C compiler uses GNU ld [default=no]Some influential environment variables:CXX C++ compiler commandCXXFLAGS C++ compiler flagsLDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in anonstandard directory <lib dir>LIBS libraries to pass to the linker, e.g. -l<library>CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> ifyou have headers in a nonstandard directory <include dir>CC C compiler commandCFLAGS C compiler flagsCPP C preprocessorCXXCPP C++ preprocessorUse these variables to override the choices made by `configure' or to help
it to find libraries and programs with nonstandard names/locations.Report bugs to <kidjan@gmail.com>.
2、编写脚本
#!/bin/bash
if [ "$1" == "" ]; thenINSTALL_PATH=`pwd`/_install
elseif [ -d $1 ]; thenINSTALL_PATH=$1elseexit 1fi
fiif [ ! -d $INSTALL_PATH ]; thenmkdir -p $INSTALL_PATH
fiif [ -f config.log ]; thenmake distclean
fi./configure --prefix=$INSTALL_PATH \--host=arm-none-linux-gnueabi \--build=i486-linux-gnu \--disable-option-checking \--enable-optimize \--disable-fvivibility \--disable-gch \--disable-largefile \--enable-util \--disable-cygmin-win32 \--disable-mingw-threads \--disable-dependency-tracking \--enable-shared=yes \--enable-static=no \--enable-fast-install=yes \--disable-libtool-lock \--with-gnu-ldif [ $? -eq 0 ]; thenmakeif [ $? -eq 0 ]; thenmake installexit 0fi
fi
3、设置权限并执行脚本
# chmod 777 build.sh
# ./build.sh
4、查看生成文件
三、测试
1、查看视频信息
# ./mp4info WUKELILI.mp4
/home/tarena/project/mp4v2/mp4v2-2.0.0/.libs/lt-mp4info version 2.0.0
WUKELILI.mp4:
Track Type Info
1 video H264 Main@3, 178.391 secs, 678 kbps, 768x432 @ 23.000039 fps
2 audio MPEG-4 AAC LC, 178.432 secs, 94 kbps, 24000 HzArtist: yinyuetai.comRelease Date: 01/30/13 20:51:30Album: YinyuetaiComments: Yinyuetai Fukai
2、列出mp4的所有轨迹
# ./mp4track --help
Usage: mp4track [OPTION]... [PARAMETERS]... ACTION file...For each mp4 file specified, perform the specified ACTION. An action must be
specified. Some options are not applicable to some actions.ACTIONS--list list all tracks in mp4--enabled BOOL set trak.tkhd.flags (enabled bit)--inmovie BOOL set trak.tkhd.flags (inMovie bit)--inpreview BOOL set trak.tkhd.flags (inPreview bit)--layer NUM set trak.tkhd.layer--altgroup NUM set trak.tkhd.alternate_group--volume FLOAT set trak.tkhd.volume--width FLOAT set trak.tkhd.width--height FLOAT set trak.tkhd.height--language CODE set trak.mdia.mdhd.language--hdlrname STR set trak.mdia.hdlr.name--udtaname STR set trak.udta.name.value--udtaname-remove remove trak.udta.name atom--colr-list list all colr-boxes in mp4--colr-add add colr-box to a video track--colr-set set colr-box parms--colr-remove remove colr-box from track--pasp-list list all pasp-boxes in mp4--pasp-add add pasp-box to a video track--pasp-set set pasp-box parms--pasp-remove remove pasp-box from trackPARAMETERS--track-any act on any/all tracks--track-index IDX act on track index IDX--track-id ID act on track id ID--colr-parms CSV where CSV is IDX1,IDX2,IDX3--colr-parm-hd equivalent to --colr-parms=1,1,1--colr-parm-sd equivalent to --colr-parms=6,1,6--pasp-parms CSV where CSV is hSPACING,vSPACINGOPTIONS-z, --optimize optimize mp4 file after modification-y, --dryrun do not actually create or modify any files-k, --keepgoing continue batch processing even after errors-o, --overwrite overwrite existing files when creating-f, --force force overwrite even if file is read-only-q, --quiet equivalent to --verbose 0-d, --debug NUM increase debug or long-option to set NUM-v, --verbose NUM increase verbosity or long-option to set NUM-h, --help print brief help or long-option for extended help--version print version information and exitDEBUG LEVELS (for raw mp4 file I/O)0 supressed1 add warnings and errors (default)2 add table details3 add implicits4 everythingVERBOSE LEVELS0 warnings and errors1 normal informative messages (default)2 more informative messages3 everything
示例:
# ./mp4track --list WUKELILI.mp4
track[0] id=1type = videoenabled = trueinMovie = falseinPreview = falselayer = 0alternateGroup = 0volume = 0.0000width = 768.00000000height = 432.00000000language = UNDEFINED(0)handlerName = 1359550061.h264#video:fps=23 - Imported with GPAC 0.5.0-rev4065userDataName = <absent>
track[1] id=2type = audioenabled = trueinMovie = falseinPreview = falselayer = 0alternateGroup = 0volume = 1.0000width = 0.00000000height = 0.00000000language = UNDEFINED(0)handlerName = GPAC ISO Audio HandleruserDataName = <absent>
3、以人类可读的格式转储MP4结构
# ./mp4file --help
Usage: mp4file [OPTION]... ACTION file...For each mp4 file specified, perform the specified ACTION. An action must be
specified. Some options are not applicable to some actions.ACTIONS--list list (summary information)--optimize optimize mp4 structure--dump dump mp4 structure in human-readable formatOPTIONS-y, --dryrun do not actually create or modify any files-k, --keepgoing continue batch processing even after errors-q, --quiet equivalent to --verbose 0-d, --debug NUM increase debug or long-option to set NUM-v, --verbose NUM increase verbosity or long-option to set NUM-h, --help print brief help or long-option for extended help--version print version information and exitDEBUG LEVELS (for raw mp4 file I/O)0 supressed1 add warnings and errors (default)2 add table details3 add implicits4 everythingVERBOSE LEVELS0 warnings and errors1 normal informative messages (default)2 more informative messages3 everything
示例:
# ./mp4file --dump WUKELILI.mp4
"WUKELILI.mp4": Dumping meta-information..."WUKELILI.mp4": type ftyp (ftyp)"WUKELILI.mp4": majorBrand = isom"WUKELILI.mp4": minorVersion = 1 (0x00000001)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type moov (moov)"WUKELILI.mp4": type mvhd (moov.mvhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": creationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": modificationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": timeScale = 600 (0x00000258)"WUKELILI.mp4": duration = 107059 (0x0001a233)"WUKELILI.mp4": rate = 1.000000"WUKELILI.mp4": volume = 1.000000"WUKELILI.mp4": reserved1 = <70 bytes>"WUKELILI.mp4": nextTrackId = 3 (0x00000003)"WUKELILI.mp4": type iods (moov.iods)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": objectDescriptorId = 1 (0x001) <10 bits>"WUKELILI.mp4": URLFlag = 0 (0x0) <1 bits>"WUKELILI.mp4": includeInlineProfileLevelFlag = 0 (0x0) <1 bits>"WUKELILI.mp4": reserved = 15 (0xf) <4 bits>"WUKELILI.mp4": ODProfileLevelId = 255 (0xff)"WUKELILI.mp4": sceneProfileLevelId = 255 (0xff)"WUKELILI.mp4": audioProfileLevelId = 40 (0x28)"WUKELILI.mp4": visualProfileLevelId = 21 (0x15)"WUKELILI.mp4": graphicsProfileLevelId = 255 (0xff)"WUKELILI.mp4": esIds"WUKELILI.mp4": ociDescr"WUKELILI.mp4": ipmpDescrPtr"WUKELILI.mp4": extDescr"WUKELILI.mp4": type trak (moov.trak)"WUKELILI.mp4": type tkhd (moov.trak.tkhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 1 (0x000001)"WUKELILI.mp4": creationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": modificationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": trackId = 1 (0x00000001)"WUKELILI.mp4": reserved1 = <4 bytes> 00 00 00 00 |....|"WUKELILI.mp4": duration = 107034 (0x0001a21a)"WUKELILI.mp4": reserved2 = <8 bytes> 00 00 00 00 00 00 00 00 |........|"WUKELILI.mp4": layer = 0 (0x0000)"WUKELILI.mp4": alternate_group = 0 (0x0000)"WUKELILI.mp4": volume = 0.000000"WUKELILI.mp4": reserved3 = <2 bytes> 00 00 |..|"WUKELILI.mp4": matrix = <36 bytes>"WUKELILI.mp4": width = 768.000000"WUKELILI.mp4": height = 432.000000"WUKELILI.mp4": type mdia (moov.trak.mdia)"WUKELILI.mp4": type mdhd (moov.trak.mdia.mdhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": creationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": modificationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": timeScale = 23000 (0x000059d8)"WUKELILI.mp4": duration = 4103000 (0x003e9b58)"WUKELILI.mp4": language = UNDEFINED(0) (0x0000)"WUKELILI.mp4": reserved = <2 bytes> 00 00 |..|"WUKELILI.mp4": type hdlr (moov.trak.mdia.hdlr)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": reserved1 = <4 bytes> 00 00 00 00 |....|"WUKELILI.mp4": handlerType = vide"WUKELILI.mp4": reserved2 = <12 bytes> 00 00 00 00 00 00 00 00 00 00 00 00 |............|"WUKELILI.mp4": name = 1359550061.h264#video:fps=23 - Imported with GPAC 0.5.0-rev4065"WUKELILI.mp4": type minf (moov.trak.mdia.minf)"WUKELILI.mp4": type vmhd (moov.trak.mdia.minf.vmhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 1 (0x000001)"WUKELILI.mp4": reserved = <8 bytes> 00 00 00 00 00 00 00 00 |........|"WUKELILI.mp4": type dinf (moov.trak.mdia.minf.dinf)"WUKELILI.mp4": type dref (moov.trak.mdia.minf.dinf.dref)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": type url (moov.trak.mdia.minf.dinf.dref.url )"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 1 (0x000001)"WUKELILI.mp4": location = (null)"WUKELILI.mp4": type stbl (moov.trak.mdia.minf.stbl)"WUKELILI.mp4": type stsd (moov.trak.mdia.minf.stbl.stsd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": type avc1 (moov.trak.mdia.minf.stbl.stsd.avc1)"WUKELILI.mp4": reserved1 = <6 bytes> 00 00 00 00 00 00 |......|"WUKELILI.mp4": dataReferenceIndex = 1 (0x0001)"WUKELILI.mp4": reserved2 = <16 bytes> 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|"WUKELILI.mp4": width = 768 (0x0300)"WUKELILI.mp4": height = 432 (0x01b0)"WUKELILI.mp4": reserved3 = <14 bytes> 00 48 00 00 00 48 00 00 00 00 00 00 00 01 |.H...H........|"WUKELILI.mp4": compressorName = "WUKELILI.mp4": reserved4 = <4 bytes> 00 18 ff ff |....|"WUKELILI.mp4": type avcC (moov.trak.mdia.minf.stbl.stsd.avc1.avcC)"WUKELILI.mp4": configurationVersion = 1 (0x01)"WUKELILI.mp4": AVCProfileIndication = 77 (0x4d)"WUKELILI.mp4": profile_compatibility = 64 (0x40)"WUKELILI.mp4": AVCLevelIndication = 30 (0x1e)"WUKELILI.mp4": reserved = 63 (0x3f) <6 bits>"WUKELILI.mp4": lengthSizeMinusOne = 3 (0x3) <2 bits>"WUKELILI.mp4": reserved1 = 7 (0x7) <3 bits>"WUKELILI.mp4": numOfSequenceParameterSets = 1 (0x01) <5 bits>"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": numOfPictureParameterSets = 1 (0x01)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type btrt (moov.trak.mdia.minf.stbl.stsd.avc1.btrt)"WUKELILI.mp4": bufferSizeDB = 48142 (0x0000bc0e)"WUKELILI.mp4": avgBitrate = 1428296 (0x0015cb48)"WUKELILI.mp4": maxBitrate = 678352 (0x000a59d0)"WUKELILI.mp4": type stts (moov.trak.mdia.minf.stbl.stts)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type ctts (moov.trak.mdia.minf.stbl.ctts)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 3966 (0x00000f7e)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stss (moov.trak.mdia.minf.stbl.stss)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 64 (0x00000040)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stsc (moov.trak.mdia.minf.stbl.stsc)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 156 (0x0000009c)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stsz (moov.trak.mdia.minf.stbl.stsz)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": sampleSize = 0 (0x00000000)"WUKELILI.mp4": sampleCount = 4103 (0x00001007)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stco (moov.trak.mdia.minf.stbl.stco)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 380 (0x0000017c)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type trak (moov.trak)"WUKELILI.mp4": type tkhd (moov.trak.tkhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 1 (0x000001)"WUKELILI.mp4": creationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": modificationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": trackId = 2 (0x00000002)"WUKELILI.mp4": reserved1 = <4 bytes> 00 00 00 00 |....|"WUKELILI.mp4": duration = 107059 (0x0001a233)"WUKELILI.mp4": reserved2 = <8 bytes> 00 00 00 00 00 00 00 00 |........|"WUKELILI.mp4": layer = 0 (0x0000)"WUKELILI.mp4": alternate_group = 0 (0x0000)"WUKELILI.mp4": volume = 1.000000"WUKELILI.mp4": reserved3 = <2 bytes> 00 00 |..|"WUKELILI.mp4": matrix = <36 bytes>"WUKELILI.mp4": width = 0.000000"WUKELILI.mp4": height = 0.000000"WUKELILI.mp4": type mdia (moov.trak.mdia)"WUKELILI.mp4": type mdhd (moov.trak.mdia.mdhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": creationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": modificationTime = 3442395090 (0xcd2ec7d2)"WUKELILI.mp4": timeScale = 24000 (0x00005dc0)"WUKELILI.mp4": duration = 4282368 (0x00415800)"WUKELILI.mp4": language = UNDEFINED(0) (0x0000)"WUKELILI.mp4": reserved = <2 bytes> 00 00 |..|"WUKELILI.mp4": type hdlr (moov.trak.mdia.hdlr)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": reserved1 = <4 bytes> 00 00 00 00 |....|"WUKELILI.mp4": handlerType = soun"WUKELILI.mp4": reserved2 = <12 bytes> 00 00 00 00 00 00 00 00 00 00 00 00 |............|"WUKELILI.mp4": name = GPAC ISO Audio Handler"WUKELILI.mp4": type minf (moov.trak.mdia.minf)"WUKELILI.mp4": type smhd (moov.trak.mdia.minf.smhd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": reserved = <4 bytes> 00 00 00 00 |....|"WUKELILI.mp4": type dinf (moov.trak.mdia.minf.dinf)"WUKELILI.mp4": type dref (moov.trak.mdia.minf.dinf.dref)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": type url (moov.trak.mdia.minf.dinf.dref.url )"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 1 (0x000001)"WUKELILI.mp4": location = (null)"WUKELILI.mp4": type stbl (moov.trak.mdia.minf.stbl)"WUKELILI.mp4": type stsd (moov.trak.mdia.minf.stbl.stsd)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": type mp4a (moov.trak.mdia.minf.stbl.stsd.mp4a)"WUKELILI.mp4": reserved1 = <6 bytes> 00 00 00 00 00 00 |......|"WUKELILI.mp4": dataReferenceIndex = 1 (0x0001)"WUKELILI.mp4": soundVersion = 0 (0x0000)"WUKELILI.mp4": reserved2 = <6 bytes> 00 00 00 00 00 00 |......|"WUKELILI.mp4": channels = 2 (0x0002)"WUKELILI.mp4": sampleSize = 16 (0x0010)"WUKELILI.mp4": compressionId = 0 (0x0000)"WUKELILI.mp4": packetSize = 0 (0x0000)"WUKELILI.mp4": timeScale = 1572864000 (0x5dc00000)"WUKELILI.mp4": type esds (moov.trak.mdia.minf.stbl.stsd.mp4a.esds)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": ESID = 0 (0x0000)"WUKELILI.mp4": streamDependenceFlag = 0 (0x0) <1 bits>"WUKELILI.mp4": URLFlag = 0 (0x0) <1 bits>"WUKELILI.mp4": OCRstreamFlag = 0 (0x0) <1 bits>"WUKELILI.mp4": streamPriority = 0 (0x00) <5 bits>"WUKELILI.mp4": decConfigDescr"WUKELILI.mp4": objectTypeId = 64 (0x40)"WUKELILI.mp4": streamType = 5 (0x05) <6 bits>"WUKELILI.mp4": upStream = 0 (0x0) <1 bits>"WUKELILI.mp4": reserved = 1 (0x1) <1 bits>"WUKELILI.mp4": bufferSizeDB = 745 (0x0002e9) <24 bits>"WUKELILI.mp4": maxBitrate = 107048 (0x0001a228)"WUKELILI.mp4": avgBitrate = 94248 (0x00017028)"WUKELILI.mp4": decSpecificInfo"WUKELILI.mp4": info = <7 bytes> 13 10 56 e5 9d 48 00 |..V..H.|"WUKELILI.mp4": profileLevelIndicationIndexDescr"WUKELILI.mp4": slConfigDescr"WUKELILI.mp4": predefined = 2 (0x02)"WUKELILI.mp4": ipiPtr"WUKELILI.mp4": ipIds"WUKELILI.mp4": ipmpDescrPtr"WUKELILI.mp4": langDescr"WUKELILI.mp4": qosDescr"WUKELILI.mp4": regDescr"WUKELILI.mp4": extDescr"WUKELILI.mp4": type stts (moov.trak.mdia.minf.stbl.stts)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 1 (0x00000001)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stsc (moov.trak.mdia.minf.stbl.stsc)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 3 (0x00000003)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stsz (moov.trak.mdia.minf.stbl.stsz)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": sampleSize = 0 (0x00000000)"WUKELILI.mp4": sampleCount = 4182 (0x00001056)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type stco (moov.trak.mdia.minf.stbl.stco)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": entryCount = 381 (0x0000017d)"WUKELILI.mp4": <table entries suppressed>"WUKELILI.mp4": type udta (moov.udta)"WUKELILI.mp4": type meta (moov.udta.meta)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": type hdlr (moov.udta.meta.hdlr)"WUKELILI.mp4": version = 0 (0x00)"WUKELILI.mp4": flags = 0 (0x000000)"WUKELILI.mp4": reserved1 = 0 (0x00000000)"WUKELILI.mp4": handlerType = <4 bytes> 6d 64 69 72 |mdir|"WUKELILI.mp4": reserved2 = <12 bytes> 00 00 00 00 00 00 00 00 00 00 00 00 |............|"WUKELILI.mp4": name = <1 bytes> 00 |.|"WUKELILI.mp4": type ilst (moov.udta.meta.ilst)"WUKELILI.mp4": type ?alb (moov.udta.meta.ilst.?alb)"WUKELILI.mp4": type data (moov.udta.meta.ilst.?alb.data)"WUKELILI.mp4": typeReserved = 0 (0x0000)"WUKELILI.mp4": typeSetIdentifier = 0 (0x00)"WUKELILI.mp4": typeCode = UTF-8 (0x01)"WUKELILI.mp4": locale = 0 (0x00000000)"WUKELILI.mp4": metadata = <9 bytes> 59 69 6e 79 75 65 74 61 69 |Yinyuetai|"WUKELILI.mp4": type ?ART (moov.udta.meta.ilst.?ART)"WUKELILI.mp4": type data (moov.udta.meta.ilst.?ART.data)"WUKELILI.mp4": typeReserved = 0 (0x0000)"WUKELILI.mp4": typeSetIdentifier = 0 (0x00)"WUKELILI.mp4": typeCode = UTF-8 (0x01)"WUKELILI.mp4": locale = 0 (0x00000000)"WUKELILI.mp4": metadata = <13 bytes> 79 69 6e 79 75 65 74 61 69 2e 63 6f 6d |yinyuetai.com|"WUKELILI.mp4": type ?cmt (moov.udta.meta.ilst.?cmt)"WUKELILI.mp4": type data (moov.udta.meta.ilst.?cmt.data)"WUKELILI.mp4": typeReserved = 0 (0x0000)"WUKELILI.mp4": typeSetIdentifier = 0 (0x00)"WUKELILI.mp4": typeCode = UTF-8 (0x01)"WUKELILI.mp4": locale = 0 (0x00000000)"WUKELILI.mp4": metadata = <15 bytes> 59 69 6e 79 75 65 74 61 69 20 46 75 6b 61 69 |Yinyuetai Fukai|"WUKELILI.mp4": type ?day (moov.udta.meta.ilst.?day)"WUKELILI.mp4": type data (moov.udta.meta.ilst.?day.data)"WUKELILI.mp4": typeReserved = 0 (0x0000)"WUKELILI.mp4": typeSetIdentifier = 0 (0x00)"WUKELILI.mp4": typeCode = UTF-8 (0x01)"WUKELILI.mp4": locale = 0 (0x00000000)"WUKELILI.mp4": metadata = <17 bytes>"WUKELILI.mp4": type mdat (mdat)"WUKELILI.mp4": type free (free)
mp4v2再学习 -- Linux 下安装说明相关推荐
- FFmpeg再学习 -- Windows下安装说明
看了半晌 雷霄骅 的 ffmpeg 的视频.待续稍后总结. 一.FFmpeg 简介 FFmpeg 是一个开源免费跨平台的视频和音频流方案,属于自由软件,采用 LGPL 或GPL 许可证(依据你选择的组 ...
- C语言再学习 -- Linux下find命令用法
参看:linux下find(文件查找)命令的用法总结 linux下查找文件的命令有两个:locate 和 find 首先说一下locate: 这个命名是对其生成的数据库进行遍历(生成数据库的命令:uo ...
- LIVE555再学习 -- Linux 下编译
现在我们来看一下 LIVE555 在Linux下的编译 一.下载源码 下载:Index of /liveMedia/public 参看:LIVE555 Streaming Media 选择下载 liv ...
- mp4v2再学习 -- H264视频编码成MP4文件
一.H264视频编码成MP4文件 参看:H264视频编码成MP4文件 参看:mp4v2在VS2010下的编译与在项目中的使用 最近做项目需要将H264文件封装为mp4文件,从网上找到了MP4V2库,下 ...
- FFmpeg学习之路:Linux下安装编译
FFmpeg学习之路:Linux下安装编译 文章目录 FFmpeg学习之路:Linux下安装编译 前言 一.下载FFmpeg 二.准备工作 1.安装yasm的汇编编译器 2.安装SDL2 三.编译安装 ...
- 【Linux学习笔记】Linux下安装Libreoffice
Linux下安装Libreoffice 一.Libreoffice简介 二.安装 2.1.如果安装过libreoffice,需要先卸载 2.2.下载libreoffice 2.3.将下载的文件放到/u ...
- linux下安装jdk+tomcat+eclipse+mysql
linux下安装jdk+tomcat+eclipse+mysql 这个星期一部门老大忽然冒出一句:"小祝,你对linux怎么样啊,用过没?",于是俺就老实的回答:"在学校 ...
- jmeter linux安装,Linux下安装Jmeter
今天我们学习下如何在Linux下安装Jmeter,因为Jmeter是Java开发的,需要依赖JDK环境,因此我们需提前安装好JDK. 本人环境: CentOS 7.3 64位 JDK 1.8(可参考文 ...
- linux下安装c/c++环境(gcc/gcc+)
##linux下安装c/c++环境(gcc) yum install gccyum install gcc-c++ libstdc++-devel 点个赞,看一看,好习惯!本文 GitHub http ...
最新文章
- Flex布局教程(来源:阮一峰)
- Android双向滑动菜单完全解析,教你如何一分钟实现双向滑动特效
- boost::make_connected用法的测试程序
- Spark 编程模型(上)
- Java捕获并处理线程失败抛出的异常
- virsh default启动失败原因分析及解决
- [Elasticsearch] es 6.6 编译报错 java.net.ConnectException: Operation timed out
- 从Ruby中删除数组中的重复元素
- 目前,国内的互联网发展趋势
- 蓝桥杯练习 圆的面积
- php小型购物网站,PHP实现一个多功能购物网站
- 232串口测试方法介绍
- kettle定时调度管理平台
- 【小技巧(水文)】清理电脑,远离流氓
- 俗话说:十赌九输。因为大多数赌局的背后都藏有阴谋。不过也不尽然,有些赌局背后藏有的是:“阳谋”。
- 差之毫厘谬之千里!带你认识CPU后缀含义
- QSocketNotifier 解读
- MIT公开课18.06 Gilbert Strang 线性代数 笔记1 - Ax=b和四个子空间
- 在nodejs中将GBK转UTF
- 平安夜,还做那只「花好夜猿」吗?
热门文章
- sql server(MsSql)字段命名,表命名,视图命名,SQL语句书写参考
- 总结iPhone、iPad各机型对应的iOS 系统版本(最全)
- Auto-Rooting Script(全自动提权脚本)
- 网络流量分析详解(包含OSI七层模型、TCP协议及Wireshark工具用法)
- Internal error. Please report to https://code.google.com/p/android/issues
- 【OpenCV】 ⚠️高手勿入! 半小时学会基本操作 24⚠️ SIFT 算法
- C++编程:简易梯形面积计算器
- caffe 报错 Aborted(core dumped
- 推荐几款云服务器上搭建属于自己的私人网盘
- python3.7通过itchat方式登录微信给好友发送天气信息