手机视频文件格式解析之 3GP-MP4

手机视频文件格式解析之 3GP-MP4


2024年5月4日发(作者:世界杯比分查询)

[转]手机视频文件格式解析之 3GP/MP4

2010-06-03 13:39

作者: k歌之王 2009-08-23

前言:做完了手机全能播放器的项目, 又要告别几个月来并肩作战,即将去北

京发展的Manager zhu。准备把

做过的3GP/FLV/AVI格式整理一遍, 算是对几个月辛苦成果的总结, 也为后来

者提供一些参考。

1. 概述

流行的文件格式背后都有大公司的支持。FLV得益于ADOBE公司推动的网络视频

分享风潮,而AVI则是MICROSOFT首创的RIFF即视频和音频交织在一起同步播

放。 3GP/MP4是APPLE提出并得到ISO标准支持作为NOKIA等手机的默认视频

格式。3GP是MP4格式在手机上的简化版。MP4的codec组合一般是mpeg4 + AAC,

3GP则按版本演进分为3gpp r5(h.263/mpeg4 + AMR-NB/AMR WB), 3gpp r6(增加

h.264视频和aacPlus音频支持)。

有人会把MP4和MPEG4搞混, 前者是文件容器(container),后者是视频编码格

式, 容器的作用是把压缩编码

后的视频和音频数据尽可能紧凑的排布,就好像阿甘的巧克力盒子,你并不知道

盒子里有什么, 但你可以按照

既定的线索解开文件,取出你需要的数据。

文件格式一般包括以下三要素:

header: 标记文件类型,音视频码流的基本属性信息

index: 索引表,每个frame有对应的offset,size,timestamp.

stream: 真正的音视频流数据。

任何文件格式都应该有以上3要素。 当然AVI视频没有索引也能播放,但不能

拖放seek,需要自己重建索引。解

析器(demuxer)根据frame_id找到其在文件中的offset和size,然后读取出来

解码并播放。

2. 文件格式分析

下面来分析一下3GP/MP4文件格式。APPLE的格式有2个特点,1. 排布紧凑几

乎没有冗余数据(AVI则有很多junk

数据),2.音视频码流数据可随意存放而不需按时间顺序排布。

3gp文件由一系列的box(atom)组成。每个box的结构都是4字节的size,4字节

的type, 还有一些data数据。用

mp4info查看3gp文件的数据排布如下图:

如上图, ftyp是表示文件的版本信息, mdat存放文字,音视频等数据。你可能

要问,这些音视频数据怎么找

到呢? 是通过moov box里的子box trak,里面存放着音视频的属性描述以及

每个sample的索引。

3. 关于sample atoms

video和audio的码流属性(如视频width/height,codec id, 音频采样率声

道数等)存放在stsd box里; 下面

着重介绍MP4高效压缩的精华:stts,stss,stsc,stsz,stco五个box。对比AVI

的索引表是每个sample都有对应的

id,flag,offset,size,3GP的高效索引方式可以把AVI转码成同码率的MP4后,

文件size减小成原来的20-30%!


发布者:admin,转转请注明出处:http://www.yc00.com/xitong/1714823316a2522902.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信