音视频入门系列

您所在的位置:网站首页 mp4视频封装软件 音视频入门系列

音视频入门系列

2024-01-19 13:53| 来源: 网络整理| 查看: 265

接上文,本篇介绍下MP4的封装格式。

1.MP4(MPEG-4) ◆ MP4是一套用于音频、视频信息的压缩编码标准,由国际标准化组织(ISO)和国际电工委员会(IEC)下属的“动态图像专家组”(Moving Picture Experts Group,即MPEG)制定,第一版在1998年10月通过,第二版在1999年12月通过。MPEG-4格式的主要用途在于网上流、光盘、语音发送(视频电话),以及电视广播。 ◆ MP4由许多box组成,每个box包含不同的信息,这些box以树形结构的方式组成,box 当中可以包含 box 如下所示:

图片

 2.box mp4文件由若干个box组成。下面是box结构的一个示意图:

图片

 ◆ box 由 header 和 body 组成,header 指明 box 的 size 和 type。size 是包含 box header 的整个 box 的大小。 ◆ box type,通常是4个ASCII码的字符如“ftyp”、“moov”等,这些 box type都是已经预定义好的,表示固定的含义。如果是“uuid”,表示该box为用户自定义扩展类型,如果 box type 是未定义的,应该将其忽略。 ◆ 如果 header 中的 size 为1,则表示 box 长度需要更多的bits位来描述,在后面会有一个 8自己 位的 largesize 用来描述 box 的长度。如果 size 为0,表示该 box 为文件的最后一个box,文件结尾(同样只存在于“mdat”类型的box中)。 ◆ box 分为两种,Box 和 Fullbox。FullBox 是 Box 的扩展,Header 中增加了version 和 flags字段。 ◆ box 定义如下:

aligned(8) class Box (unsigned int(32) boxtype, optional unsigned int(8)[16] extended_type) { unsigned int(32) size; unsigned int(32) type = boxtype; if (size==1) { unsigned int(64) largesize; } else if (size==0) { // box extends to end of file } if (boxtype==‘uuid’) { unsigned int(8)[16] usertype = extended_type; } }

◆ FullBox 定义如下:

aligned(8) class FullBox(unsigned int(32) boxtype, unsigned int(8) v, bit(24) f) extends Box(boxtype) { unsigned int(8) version = v; bit(24) flags = f; }

3.ISO/ICE 14496-12

图片

 4.MP4分析工具: ◆ mp4box.js:https://gpac.github.io/mp4box.js ◆ bento4:http://www.bento4.com ◆ mp4info:https://www.greenxf.com/soft/179781.html ◆ qtauomviewer::https://api.256file.com/download/378144_qtatomviewer.exe

音视频入门系列文章已同步在微信公众号(可扫下方二维码关注):八小时码字员

音视频入门系列,同步录制了学习视频,已上传至bilibili(八小时码字员):音视频入门系列(图像、音频、字幕、视频封装格式,FFmpeg、ffplay源码分析,解码、编码、转码,流媒体协议,服务器部署)_哔哩哔哩_bilibili

音视频学习交流QQ群:693316541



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3