mp4v2再学习 -- Linux 下安装说明
来源:互联网 发布:行星齿轮设计软件 编辑:程序博客网 时间:2024/05/06 13:43
一、MP4v2 简介
参看:嵌入式Linux下MP4视频录制库MP4V2移植和简介
了解:mp4(3) - Linux man page
了解:MP4文件格式的解析,以及MP4文件的分割算法
首先官网上有这样的介绍:
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.翻译一下:
MP4V2 的前身是 MPEG4IP 开源项目中的一个功能库,但是现在 MPEG4IP 已经不在更新了。但是 MP4V2 还在更新,并且独立出来了。MP4V2 主要是作为 MP4 文件的录制一个开源库。
MPEG4IP 提供一个端对端的系统来实现音视频流的传输,支持包括 MPEG4/H.261/MPEG2/H.263/MP3/AAC/AMR等不同编码格式。现在关于Google相关的 code.google.com 已经无法打开了,因此只好提供下面的下载地址。
下载:mp4v2 package in Ubuntu
下载:Ubuntu_mp4v2_mp4 包含转MP4源码
下载:Ubuntu_mp4v2_mp4 包含转MP4源码
二、MP4v2编译
Windows下编译安装,参看:MP4V2库与MP4AV库编译
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 asVAR=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 specifyan 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=use both] --with-gnu-ld assume the C compiler uses GNU ld [default=no]Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a nonstandard 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> if you have headers in a nonstandard directory <include dir> CC C compiler command CFLAGS C compiler flags CPP C preprocessor CXXCPP C++ preprocessorUse these variables to override the choices made by `configure' or to helpit to find libraries and programs with nonstandard names/locations.Report bugs to <kidjan@gmail.com>.
2、编写脚本
#!/bin/bashif [ "$1" == "" ]; then INSTALL_PATH=`pwd`/_installelse if [ -d $1 ]; then INSTALL_PATH=$1 else exit 1 fifiif [ ! -d $INSTALL_PATH ]; then mkdir -p $INSTALL_PATHfiif [ -f config.log ]; then make distcleanfi./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 ]; then make if [ $? -eq 0 ]; then make install exit 0 fifi
3、设置权限并执行脚本
# chmod 777 build.sh# ./build.sh
4、查看生成文件
编译成功之后,会在 _install 目录中生成如下的文件夹,如下所示:
看看lib目录下是否有mp4v2的库,如下所示:
想要知道如何使用这个库,可以参考util目录下的应用代码,如下所示:
三、测试
参看:学习使用mp4v2-2.0.0 —— 1
1、查看视频信息
mp4info <file-name>
示例:
# ./mp4info WUKELILI.mp4 /home/tarena/project/mp4v2/mp4v2-2.0.0/.libs/lt-mp4info version 2.0.0WUKELILI.mp4:TrackTypeInfo1videoH264 Main@3, 178.391 secs, 678 kbps, 768x432 @ 23.000039 fps2audioMPEG-4 AAC LC, 178.432 secs, 94 kbps, 24000 Hz Artist: yinyuetai.com Release Date: 01/30/13 20:51:30 Album: Yinyuetai Comments: Yinyuetai Fukai
2、列出mp4的所有轨迹
mp4track [OPTION]... [PARAMETERS]... ACTION file...
# ./mp4track --helpUsage: mp4track [OPTION]... [PARAMETERS]... ACTION file...For each mp4 file specified, perform the specified ACTION. An action must bespecified. 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 supressed 1 add warnings and errors (default) 2 add table details 3 add implicits 4 everythingVERBOSE LEVELS 0 warnings and errors 1 normal informative messages (default) 2 more informative messages 3 everything示例:
# ./mp4track --list WUKELILI.mp4 track[0] id=1 type = video enabled = true inMovie = false inPreview = false layer = 0 alternateGroup = 0 volume = 0.0000 width = 768.00000000 height = 432.00000000 language = UNDEFINED(0) handlerName = 1359550061.h264#video:fps=23 - Imported with GPAC 0.5.0-rev4065 userDataName = <absent>track[1] id=2 type = audio enabled = true inMovie = false inPreview = false layer = 0 alternateGroup = 0 volume = 1.0000 width = 0.00000000 height = 0.00000000 language = UNDEFINED(0) handlerName = GPAC ISO Audio Handler userDataName = <absent>
3、以人类可读的格式转储MP4结构
mp4file [OPTION]... ACTION file...
# ./mp4file --helpUsage: mp4file [OPTION]... ACTION file...For each mp4 file specified, perform the specified ACTION. An action must bespecified. 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 supressed 1 add warnings and errors (default) 2 add table details 3 add implicits 4 everythingVERBOSE LEVELS 0 warnings and errors 1 normal informative messages (default) 2 more informative messages 3 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)
阅读全文
1 0
- mp4v2再学习 -- Linux 下安装说明
- FFmpeg再学习 -- Windows下安装说明
- FFmpeg再学习 -- Linux 安装说明
- Linux下安装JDK说明
- linux下lwrap安装说明
- linux下HTK安装说明
- Linux下oracle10g安装配置说明
- Linux下oracle10g安装配置说明
- Gentoo Linux下Bugzilla安装配置说明
- Gentoo Linux 下MediaWiki安装配置说明
- Linux下oracle11Gr2(64位)安装说明
- linux下ImageMagick,Jmagick安装说明(linux64)
- Linux 下软件安装小说明
- linux下ImageMagick,Jmagick安装说明(linux64)
- Linux下怎样安装JDK图示说明
- linux下安装oracle 10g说明
- Linux下安装oracle详细过程说明
- Linux下安装Mathematica 9的说明
- Java Date与String的转换
- SQLServer 代理作业
- Java后台之路(04)-JDBC
- android kotlin基础(四)-返回和跳转
- 分布式存储系统
- mp4v2再学习 -- Linux 下安装说明
- Java后台之路(01)-MySql
- Qt基础 03_Qt对话框(二)
- 文章标题
- Could not determine the class-path for interface com.android.builder.model.NativeAndroidProjec
- Qt 二进制文件读写
- 前端实现微信分享
- 关于LINQ执行查询的解决
- springMVC源码4:HttpMessageConverter<T>和ConversionService之间怎么关联