MP4文件格式

MP4文件格式全称为MPEG-4 Part 14(或简称为MPEG-4 v2),是一种广泛使用的多媒体容器格式,用于存储音频、视频、字幕以及其他辅助数据,如按钮、交互式内容等。MP4格式的设计目的是为了高效地存储和传输高质量的多媒体内容,尤其适合网络分发和移动设备使用。MP4文件的内部结构是由一系列的“box”(或在QuickTime中被称为“atom”)组成的,每个box包含了一个头部和数据部分,头部包括box的类型、大小和其他一些元数据信息。主要的box类型有:

1. ftyp box:标识文件类型和兼容的brand。

2. moov box:包含媒体文件的整体信息和所有轨道的信息。

3. trak box:每个trak box代表一个媒体轨道(音频或视频)。

4. mdia box:包含media信息,嵌套在trak box内部。

•mdhd box:存储媒体头信息,如时基(time scale)和duration。

•hdlr box:定义媒体类型(handler)。

•minf box:存储媒体信息的格式特定数据。

•vmhd 或 smhd:分别用于视频或音频的媒体信息头。

•stbl box:存储媒体样本表,包括:

        •stsd box:样本描述,定义媒体数据的编码格式。

        •stts box:时间到样本映射表,存储每个样本的持续时间。

        •stsc box:样本到chunk映射表。

        •stsz box:样本大小表。

        •stco 或 co64:chunk偏移量表,指出每个chunk在文件中的位置。

5. mdat box:实际的媒体数据存储区域。

在MP4容器格式及其相关的编程库如mp4v2中,track、sample和 chapter是几个基础概念,分别应着不同的结构层次和功能:使用mp4v2这样的库时,开发者可以操作tracks来读取或写samples,也可以创建、编辑或删除chapters,从而实现对MP4文件结构和内容的控制与管理。

在MP4容器格式中,帧率(frame rate)、Duration(时长)和TimeScale(时间尺度)之间有着密切的关系:

1. 帧率(Frame Rate): 帧率指的是视频中每秒钟播放的画面数量,通常用 FPS(Frames Per Second)表示。例如,如果视频帧率为30 FPS,则意味着视频中每一秒钟包含30帧图像。

2. Duration: Duration是媒体段(如视频剪辑或音频片段)的持续时间,通常以秒为单位。在MP4文件中,Duration是以TimeScale为基准的,所以它是一个相对于TimeScale的数值。

3. TimeScale: TimeScale是MP4文件中的时间精度计量单位,表示每秒钟的时间刻度数。例如,一个常见的TimeScale值是90000,这意味着每秒钟有90000个时间单位。这个值越大,时间精度越高。

帧率、Duration和TimeScale之间的数学关系体现在视频的总帧数和文件中的时间戳分配上:

        •视频的总帧数 = 帧率 × Duration(以秒为单位)

        •在MP4容器中,某一帧的绝对时间戳(PTS)可以通过以下公式计算: PTS(毫秒)= (帧号 × 1000 / 帧率)+ 开始时间(毫秒)

而在MP4容器的时间戳体系中,通常PTS会被转换为相对于TimeScale的时间戳,公式变为:

        •时间戳(相对于TimeScale)= (帧号 × TimeScale / 帧率)+ 开始时间戳(相对于TimeScale)

例如,若视频帧率为30 FPS,TimeScale为90000,要计算第100帧的时间戳:

        •时间戳 = (100 × 90000 / 30) + 开始时间戳(假设开始时间戳为0,则为视频帧的实际时间戳)

总之,Duration和帧率共同决定了视频内容的长度,而TimeScale则定义了时间戳的精度,是计算和同步媒体内容的基础单位。在处理MP4文件时,理解和正确转换这些参数非常重要。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值