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源码

二、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)
原创粉丝点击