文件格式

MP4 - MPEG-4 第14部分视频

MP4 是如今几乎所有视频使用的封装格式,从手机录制到流媒体下载皆如此。它将视频、音频、字幕和元数据封装在一个文件中。

.mp4

MP4 是你最常遇到的视频文件。它的正式名称是 MPEG-4 Part 14,由制定 MPEG 视频标准的同一国际机构 Moving Picture Experts Group 定义。MPEG 并不是从零开始设计的:它以 Apple 的 QuickTime 文件格式为基础,将其变成 ISO Base Media File Format,然后在此之上构建了 MP4。这就是为什么 MP4 和 MOV 文件在内部结构上如此相似。手机、相机、剪辑程序、流媒体服务和聊天应用都选用了 MP4,所以它几乎可以在你拥有的任何设备上播放。

MP4 文件是如何组成的

MP4 是一种容器文件格式。容器本身并不负责压缩;它是一个盒子,装着已经压缩好的数据流,并告诉播放器如何读取。压缩是由编码器(codec)完成的,MP4 里常见的视频编码器为 H.264、H.265(也叫 HEVC)或 AV1,音频则通常是 AAC。这些都是有损压缩:会丢弃你的眼睛和耳朵不太可能注意到的细节,而且这些细节无法恢复。通过编辑器重新保存 MP4 会再次压缩文件,并进一步损失一些质量。

在文件内部,结构是由一棵由块组成的树构成,这些块叫作 boxes 或 atoms。每个都有一个四字节名称。开头的 ftyp 声明了这是哪一种 MP4 变体,mdat 保存原始的压缩视频和音频,而 moov 是索引,用来把播放时间映射到 mdat 中的位置。音频和视频以小块交错存储,这样播放器可以同时读取二者。当 moov 位于文件开头时,下载尚未完成就可以开始播放,这就是各类应用所说的“快速开始”。

MP4 文件包含哪些元数据

MP4 元数据也保存在这些 box 中,因此针对 MP4 的报告会把技术信息和描述性标签混合在一起展示。

  • 影片头部 mvhd 包含创建日期和修改日期、总时长,以及用于度量时长的时间基准。
  • 每个轨道都有自己的头部信息,包括画面尺寸、一个旋转矩阵(告诉播放器这个片段是否是侧拍的)、语言代码和处理器名称。
  • 媒体流描述中记录了编码器名称、帧率、比特率、音频采样率以及声道数量。
  • 描述性标签位于一个用户数据块中,通常被称为 iTunes 样式标签列表。字段名以版权符号开头,例如标题字段、艺术家、专辑、年份、流派、注释和编码器,以及封面图像和简介字段。当文件来自音乐或视频商店时,往往就是这个数据块被写入了内容。

其中有些信息是个人相关的。手机通常会把 GPS 位置写入坐标字段,以纬度、经度以及有时包含海拔的形式存储。Apple 设备会额外加入一组键,记录相机品牌、型号、操作系统版本,以及带有录制时区信息的创建日期。Android 手机以类似方式写入位置信息。Adobe 的编辑和设计软件还可以嵌入 XMP 数据包,这是一段结构化文本,会重复记录标题、作者、版权以及编辑历史。如果你打算发布自己拍摄的视频,设备信息和位置信息字段是最值得删除的部分。

何时选择使用 MP4 格式

当文件需要在你无法控制的环境中播放时请选择 MP4,例如网站、你发送到的手机、电视或客户的笔记本电脑。几乎没有其他格式拥有这么广泛的支持,而且几乎所有屏幕设备都内置了 H.264 的硬件解码。

最明显的替代格式是 MKV,它可以容纳更多音轨、更多字幕格式、章节和附加文件,因此更适合作为包含多语言音轨电影的归档格式。MP4 刻意把范围做得更窄,从而获得更高的可靠性。当你需要在网页上使用免版税编码器时可以选择 WebM,因为 H.264 和 HEVC 需要支付专利许可费用。如果你只需要更换封装格式,请选择“重新封装”(remux)而不是重新编码:将已有的数据流复制到新容器中不会损失任何质量。