博客
关于我
MP4文件格式详解——结构概述
阅读量:711 次
发布时间:2019-03-21

本文共 993 字,大约阅读时间需要 3 分钟。

Box盒子结构介绍

在MP4文件格式中,文件由多个Box组成,每个Box包含特定的数据和子Box。Box的结构基本如下:

  • File:文件本身,包含多个Box。
  • Box:每个Box由Header和Data组成。
    • Header:包含Box的长度(size)和类型(type),还可能包含扩展信息(extended_type)。
      • size:Box的长度,当size为0时表示最后一个Box;size为1时表示需要扩展描述Box的长度。
      • type:Box的类型,例如“uuid”表示用户自定义扩展类型。
    • Data:Box的实际数据,可以包含其他子Box或纯数据。

MP4文件格式

MP4文件概述

MP4文件由多个Box组成,下表列出了所有必选或可选的Box类型,√代表Box是必选项。

序号 Box类型 简要说明
ftyp 文件类型和兼容性信息
moov 包含所有媒体数据的宏观描述信息(包括mvhd和trak)。
mvhd 视频或音频的媒体头信息,包含创建时间、修改时间等。
trak 单个流或轨道的容器,包含多个子Box(如tkhd)。
tkhd 轨道的宏观信息,包含轨道ID、音频编码等信息。
trex 轨道默认扩展信息,定位流中所有默认段落。
mvex 视频段落的扩展描述。
elt 编辑列表,记录时间和编辑信息。
elst 编辑列表。
dref 数据参考,记录媒体数据的来源。
stsd 样本描述,包含编码器类型和初始化信息。

MP4文件结构图片

图片描述了MP4文件的宏观结构,包括各个Box的位置和关系。例如,moovbox下包含mvhd和trak,进而包含多个子Box。

文件分割与索引

为了支持渐进式播放,MP4文件通常会被分割为多个Fragments(片段),每个Fragment包含一个或多个moof和mdatBox。这样,客户端在接收一个Fragment的完整数据后,就可以立即开始播放该片段的数据。

Smooth Streaming

在Silverlight的Smooth Streaming技术中,MP4文件采用ismv格式,文件由多个Fragments组成。每个Fragment包含一个moofBox和一个或多个mdatBox。通过HTTP进行无缝播放,用户只需接收足够的Fragment数据即可开始播放。

以上是对MP4文件格式的基本理解和优化。

转载地址:http://erkrz.baihongyu.com/

你可能感兴趣的文章
Mysql5.7版本单机版my.cnf配置文件
查看>>
mysql5.7的安装和Navicat的安装
查看>>
mysql5.7示例数据库_Linux MySQL5.7多实例数据库配置
查看>>
Mysql8 数据库安装及主从配置 | Spring Cloud 2
查看>>
mysql8 配置文件配置group 问题 sql语句group不能使用报错解决 mysql8.X版本的my.cnf配置文件 my.cnf文件 能够使用的my.cnf配置文件
查看>>
MySQL8.0.29启动报错Different lower_case_table_names settings for server (‘0‘) and data dictionary (‘1‘)
查看>>
MYSQL8.0以上忘记root密码
查看>>
Mysql8.0以上重置初始密码的方法
查看>>
mysql8.0新特性-自增变量的持久化
查看>>
Mysql8.0注意url变更写法
查看>>
Mysql8.0的特性
查看>>
MySQL8修改密码报错ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
查看>>
MySQL8修改密码的方法
查看>>
Mysql8在Centos上安装后忘记root密码如何重新设置
查看>>
Mysql8在Windows上离线安装时忘记root密码
查看>>
MySQL8找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
查看>>
mysql8的安装与卸载
查看>>
MySQL8,体验不一样的安装方式!
查看>>
MySQL: Host '127.0.0.1' is not allowed to connect to this MySQL server
查看>>
Mysql: 对换(替换)两条记录的同一个字段值
查看>>