我是靠谱客的博主 正直冬天,最近开发中收集的这篇文章主要介绍mp4box-h264-ftyp-moov-mvhd-thkd-avcC-sps-pps 详解,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1、mp4文件,是由多个Box或FullBox组成

2、 Box,每个Box由Header和Data组成,FullBox,是Box的扩展,Box结构的基础上在Header中增加8bits version和24bits flags

3、 Header,包含了整个Box的长度size和类型type。当size==0时,代表这是文件中最后一个Box;当size==1时,意味着Box长度需要更多bits来描述,在后面会定义一个64bits的largesize描述Box的长度;当type是uuid时,代表Box中的数据是用户自定义扩展类型。

4、 Data,是Box的实际数据,可以是纯数据也可以是更多的子Boxes,见下图:

推荐一个mp4的图形界面解析工具:mp4info

上图左侧栏 ftyp  moov  trak  tkhd  edts  elst  mdia 等都是一个Box,moov 包含 trak

ftyp 是第一个box,二进制数据见下图

(1) 00 00 00 1c 是ftyp的大小----共28字节

(2) 66 74 79 70 是ftyp的类型ASCII值----ftyp

(3) 6d 70 34 32 在版本号 mp42

(4) 00 00 00 01 小版本号

(5) 6d 70 34 31 / 6d 70 34 32 / 69 73 6f 6d 兼容版本号 mp42 / mp41 / isom

moov  

00 02 a7 cc 大小----174028

6d 6f 6f 76  类型ASCII值----moov

mvhd

00 00 00 6c 大小----108

6d 76 68 64 类型ASCII值----mvhd ,

00 00 00 00 这个是FullBox----8bits version和24bits flags

d9 19 03 20 创建时间    3 642 295 072  从UTC时间的1904年1月1日0点至今的秒数

d9 19 03 20 修改时间

00 00 02 58  Time scale 文件在1秒时间内的刻度 Time scale----600    duration / timescale = 可播放时长(s)

00 02 99 e0  duration 该track的时间长度,用duration和Time scale值可以计算track时长---170464

00 01 00 00  媒体速率,这个值代表原始倍速

01 00 媒体音量,这个值代表满音量

接下来的一系列值都是结构中的预定义值,参见结构定义即可

thkd

00 00 00 5c 大小----92

74 6b 68 64 类型ASCII值----tkhd

00 00 00 01 这个是FullBox----8bits version和24bits flags

d9 19 03 20 创建时间    3 642 295 072  从UTC时间的1904年1月1日0点至今的秒数

d9 19 03 20 修改时间

00 00 00 01  trak id号,不能重复且不能为0

00 00 00 00  保留的

00 02 99 e0 duration时长---170464

00 00 00 00 00 00 00 00 保留的

00 00 视频层,默认为0,值小的在上层  
00 00 track分组信息,默认为0表示该track未与其他track有群组关系  
01 00 媒体音量,这个值代表满音量
00 00 保留的
接下来36个字节为视频变换矩阵  
01 70 00 00 宽  368
02 70 00 00 高  624

avcC--sps pps

在H264中,SPS和PPS存在于NALU header中,而在MP4文件中,SPS和PPS存在于AVCDecoderConfigurationRecord, 首先要定位avcC

00 00 00 2a 大小----42

61 76 63 43 类型ASCII值----avcC

图片转自 https://www.cnblogs.com/ghw-NO1/archive/2012/08/27/2658896.html

 

最后

以上就是正直冬天为你收集整理的mp4box-h264-ftyp-moov-mvhd-thkd-avcC-sps-pps 详解的全部内容,希望文章能够帮你解决mp4box-h264-ftyp-moov-mvhd-thkd-avcC-sps-pps 详解所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部