mp4文件格式解析(mp4格式解析)
mp4文件格式解析(mp4格式解析),本文通过数据整理汇集了mp4文件格式解析(mp4格式解析)相关信息,下面一起看看。
超详细mp4格式分析软件(超详细mp4格式分析文件)哪种MP4是好的1.MP4分析工具?
mediainfo
MP4 box:http://download . TSI . telecom-Paris tech . fr/gpac/MP4 box . js/filereader . html
对于Mp4来说,都是盒子来组织元素。比如竖框就是盒子,这里重点说一下moov。mp4?它由盒子组成,每个盒子又分为头和数据。头部分包含盒子的类型和?数据包含?或者盒子数据,盒子可以嵌套?方框7 .MP4?一件作品的基本单位是盒子,也就是说MP4?它由各种盒子组成,包括母盒和子盒。,这些盒子之间存在着什么?设置层级关系,汇总如下表所示。每个盒子的必需或可选特性都在表中标出,代表必需的盒子。
就是下图?典型的mp4?的基本结构
Hexinator:
Mp4box和mediainfo的对比。
这个trak表示音频和视频有多少个通道。每个av流对应于一个轨道。每个轨道可以具有宽度和高度信息、编译器信息、采样率、通道、时基(time_scale)。
意味着轨道宽度和高度使用4个字节。
视频和音频的时间尺度不一样。
音频和视频处理程序也不同。
更重要的样表。
一个MP4文件被分成多个音轨,一个音轨被分成多个组块,一个组块有多个样本。Mp数据索引和实际数据存储在不同的区域。
先用数据索引找moov,再找mdat。
下面解释的是chunk1-84,都对应一个样本,chunk85,两个样本,chunk86-88,一个样本,chunk89,两个样本,chunk90,一个样本。
可以根据样本大小读取每帧数据的大小。
ftyp
文件类型框,一般存在?乐曲的起始位置,描述。版本、兼容协议等。
moov
电影盒子,包括本?所有媒体数据的宏观描述信息和每个媒体轨道的具体信息。被安置在?在作品的,但如果为?如果下载玩http,需要提前moov。请注意,当更改moov位置时,内部?有些值需要重新计算。
mdat
媒体盒,存储特定的媒体数据。
Moov内幕
mp4的媒体数据信息主要存储在Moov盒子中,这是我们分析的重点。moov的主要组成部分如下
mvhd
电影片头盒,录全媒体?作品的描述信息,比如创作时间,修改时间,测时尺度,可玩时间?等等。
在下面的例子中,你可以得到?信息是否及时?持续时间5016毫秒。
udta
用户数据框?定义数据。
轨道
轨道,记录媒体流信息,它能存在于?还是相互独立的多轨道?是的。
每个轨道包含以下内容?组件
tkhd
轨道头框,包含媒体流的头信息。在下面的例子中,您可以看到视频流宽度800、学位1920。
?那么频率tkhd呢?如时长、音量等。
mdia
媒体盒,这是?包含轨道媒体数据信息的容器盒。包装盒包括
Mdhd:媒体头框,存储视频流的创建时间。平等信息。
Hdlr:Handler引用框,媒体播放过程的信息。
Minf:媒体信息框,解释轨道媒体数据的处理程序特定信息。Minf也是一个containerbox,内部需要注意的内容是stbl,这也是moov最复杂的部分。Stbl包含媒体流per?样本在这里?中的偏移量、pts、持续时间和其他信息。想玩吗?Mp4?件,每个样本必须根据stbl正确找到并发送到解码器。
Mdia扩展如下图所示
mdhd
媒体头框,存储视频流的创建时间。平等信息。视频的Mdhd、时间刻度、时长等信息。
?频率mdhd,类似于视频,注意时间尺度,计算时间戳的时候一定要做成?时间尺度,对应我们的流?AVStream-time_base of。
hdlr
处理程序参考框,关于媒体播放过程的信息。视频的Hdlr,侧重于分量子类型vide。
?频率的Hdlr,分量子类型soun,如果我们有不止一个?追踪时间,组件名称粤语。
我们分析过了?另一块?路?轨迹,根据不同的名称来区分。
minf
Minf:媒体信息框,解释轨道媒体数据的处理程序特定信息。Minf也是一个containerbox,内部需要注意的内容是stbl,这也是moov最复杂的部分。Stbl包含媒体流per?样本在这里?中的偏移量、pts、持续时间和其他信息。想玩吗?Mp4?件,每个样本必须根据stbl正确找到并发送到解码器。
?而且需要注意的是,minf?真的吗?容器,和视频轨道不一样。如视频轨道vmhd,频率是高清
vmhd
高清
Stbl内幕
样表箱,走?提到mdia最重要的部分是存储?中每个样本信息的Stbl。在分析stbl之前,我们需要区分chunk和sample这两个概念。
在mp4?样本是?媒体流(如视频流)的基本单元。样本代表实际nal数据。组块是数据存储的基本单位,是哪个?样本数据系列的 ?组块可以包含?一个或多个样本。
stbl?描述每个样本的信息,包括以下内容?一个大的?方框
stsd
样本盒,存储解码所需的描述信息。在下面的例子中,h264的视频流的具体类型是avc1,并且扩展存储必要的解码信息,例如sps和pps。
视频的Stsd
?包括avc1,avc1?包括avcC和pasp。
Avc1:包括视频宽度和高度。
AvcC:包含视频编码器相关信息,包括sps,pps等。
?频率的标准偏差
Hexinator分析包含音频相关信息,如采样率和通道号。
stts
定义每个样本时的采样时间框?采样时间的表格条目布局如下
Sttable条目布局
样本数样本的数量。
样本持续时间样本持续时间。
持续时间相同的连续样品可以放入?入门?为了节省空间?是的。这个?给出的是stts,即视频的条目数。这个参数需要注意的是,它不是样本数。实际的样本数需要通过每次输入的样本数来计算?累加是样本的实数。
在下面的例子中,第一个采样时间是3720,In?Mdhd的时间尺度?转换,如果视频是90000,那么换算的秒就是3720/90000=0.04333333秒。
再给我一个?频率stts,只是我们之前看到的mdhd的时间尺度的区别?如果频率是44100,算个数?采样时间。1024/44100=0.0232199546485261秒。
stss
Syncbox,同步样表,存储关键帧列表。关键帧是干什么用的?持有随机存取权。
stss的表项布局如下
Sttable条目布局
在下面的示例中,该视频轨道有3个关键帧
stsc
样本-组块盒,样本-组块映射表。
去吗?Mp4通常将样本封装成块。一大块可能包含?还是?一个样本。样本到块原子的表条目布局如下图所示
第一大块make?这个条目的编号?组块序列号
每块样本制作?这个条目的块包含?样品
样品id:制造商?此条目的块引用的stsd条目序列号
在下面的例子中,你可以看到视频轨道?有一个stsc条目,块序列1-x,每个块包含?一个样本。这个?解释一下每一块。只有?样本(?一个组块可以具有多个样本)。
stsz
样本框,指定每个样本的大小。样品原子包含两个样品总量和?张包含了每个样本大小的表格。
示例表的条目布局如下
在下面的例子中,视频流?有110个样品,第一个样品?是42072字节,第二个样本?是7354字节。
stco
块偏移框,它指定每个块都在。这张桌子是用来确定每个样品的位置的吗?棋子位置的关键。此表包含组块数和?包括中的每个块?中的偏移位置表。每个条目的内存布局如下
注意,这个?Stco仅由中的每个块指定。在偏置位置,不给出每个样品在?中的偏移量。为了获得每个样本的偏移位置,需要结合样本大小盒(stsz)和样本到组块(stsc)的计算。
在下面的示例中,视频流的第一个块在?件的偏移量是4750,这个?每个组块只有一个吗?样,第一次在这个时候?每个样本的起始位置是4750-0x1D78,数据?然后参考stsz,page?样本量为172818。
?例如偏移位置7544-0x1D78。
如何计算样本偏移位置
去吗?当提到stco时,不能直接获得样本的偏移位置。举例说明如何获得一个。与pts相对应的样本在?的位置。
?需要采取以下步骤
(1)将pts转换为媒体对应的时间坐标系。
(2)根据stts((解码)采样时间)计算对应于pts的采样序列号。
(3)根据stsc(sample-to-chunk),计算样本序列号存储在哪个chunk中。
(4)根据stco(chunk offset),得到对应的chunk in?中的偏移位置。
(5)根据stsz得到样本在组块中的偏移位置,加上步骤4得到的偏移,计算样本在?中的偏移量。
例如,想要获取3.64秒的视频样本数据?的位置。
(1)根据时间刻度参数,将3.64秒换算成视频时间轴对应的3640000(如果时间刻度不是毫秒)。
视频轨道时间刻度为90000,对应的时间戳为3.64秒90000。
(2)遍历并累加下表中显示的所有stts项目?计算出的3640000位于第110个样本=327600。
(3)多个sample_deltas叠加计算达到327600。我们呢?我们取3780为平均值,实际上是37201 37801 36901 37802................直接叠进去?27600/3780=86.66666666667,四舍五入到86。
(4)查询下表显示的stsc的所有项目?计算出第86个样本位于第86个组块,它位于这个组块中的第1个样本(因为我们的码流对应每个组块?样本)。
(5)查询下表中显示的所有stco项目?把第86块放进去。中间偏移位置是1004678。制造?赫辛纳托尔.
(6)查询下表显示的stsz的所有项目?第86个样本的大小是20934。获取3.64秒的视频样本数据?一块。
偏移量1004678 0=1004678
尺码20934 .
认证打开编辑器mp4?件,位于?偏移1004678位置。09分离器,这个?詹?6字节,然后再看真实数据区。前4个字节也是NALU的?0x000051bc=20924。
总计?4 2 4 20924=20934的字节计算。
《整理mp4协议重点,将协议读薄》 :
?一个组块包含多个样本。请参考一下?链接进去?分析
mp4?格式关键分析https://www.jianshu.com/p/44c9567d8fcb
这篇文章的分析到此为止,对MP4的非常详细的分析。如果对你有用,可以关注,喜欢,收藏,转发。
超详细mp4格式中的mp4格式分析
更多mp4文件格式解析(mp4格式解析)相关信息请关注本站,本文仅仅做为展示!