MP4、MOV、MKV 与 WebM 对比:视频容器格式详解
更新于
视频文件其实是一个装着好几样东西的盒子:一条或多条视频流、一条或多条音频流,通常还有字幕、章节标记,以及标题或录制日期等元数据。这个盒子叫作容器,文件扩展名指的就是它。MP4、MOV、MKV 和 WebM 都是容器格式,而不是编码格式。
这一区别解释了许多令人困惑的现象。两个 .mp4 文件的表现可能完全不同,因为一个装的是 H.264 视频,另一个装的是 HEVC。一个 .mkv 文件可能在 iPhone 上无法播放,即使里面的视频是再普通不过的 H.264,原因仅仅是播放器读不懂 MKV 这个盒子。了解每种容器各自擅长什么,选择格式就会容易得多。
MP4:兼容性最好的容器
MP4(MPEG-4 第 14 部分)基于 ISO 基础媒体文件格式,而后者本身又是从 Apple 的 QuickTime 格式发展而来的。它是手机、社交网络、视频平台和网页浏览器的默认格式。它通常装载 H.264 或 H.265 视频和 AAC 音频,也可以容纳 AV1 和 VP9。
MP4 支持多条音轨和章节,但对字幕的支持有限:支持它的标准文本字幕格式(通常称为 mov_text)的播放器,比支持 MKV 文件中常见的 SRT 或 ASS 字幕的播放器要少。如果以兼容性为目标,MP4 几乎总是正确答案。
MOV:Apple 的 QuickTime 格式
MOV 是 Apple 的 QuickTime 容器,也是 iPhone 和 Mac 默认写入的格式。它在结构上与 MP4 非常接近,因此在编码格式兼容时,两者之间的转换通常又快又无损。MOV 在专业工作流程中很常见,因为它可以装载 Apple ProRes 等便于剪辑的编码格式。
在 Apple 设备上,MOV 享有一等待遇。在 Windows 和 Android 上,大多数现代播放器也能打开它,但有些网页上传工具和较旧的软件只接受 MP4。如果 MOV 文件被拒,通常的解决办法是用 MOV 转 MP4 进行转换。
MKV:灵活的容器
MKV(Matroska)是一种开放、免版税的容器,几乎可以容纳任何编码格式:H.264、HEVC、VP9、AV1、AAC、Opus、FLAC、AC-3、DTS 等等。它支持任意数量的音轨和字幕轨、ASS 和基于图像的 PGS 等丰富的字幕格式、章节,以及字体之类的附件。这使它在归档和多语言电影中很受欢迎。
它的弱点是设备支持。Apple 的内置播放器、许多网页浏览器和一些电视根本无法播放 MKV,或者只能播放画面,而没有音频或字幕。我们的 MKV 文件为何无法播放指南详细介绍了解决方法。
WebM:专为网络打造
WebM 是为浏览器设计的 Matroska 限制版本。它只允许使用免版税的编码格式:视频为 VP8、VP9 或 AV1,音频为 Vorbis 或 Opus。这种限制正是它的意义所在,因为这意味着任何支持 WebM 的浏览器都能播放任何有效的 WebM 文件,不存在授权问题。
WebM 很适合嵌入网页的视频和在浏览器中录制的录屏。如果要发给别人,而对方会用桌面视频编辑软件或较旧的手机打开,WebM 就不是好选择,这时 MP4 更稳妥。WebM 转 MP4 页面一步即可完成转换。
对照总结
以下只是一般趋势,而不是保证;里面的编码格式与容器同样重要。
- 兼容性最佳:MP4,其次是 MOV。MKV 和 WebM 则取决于播放器。
- 编码格式选择最自由:MKV。WebM 则刻意设计得限制最多。
- 字幕:MKV 支持的格式范围最广;MP4 和 MOV 支持较简单的文本字幕。
- 剪辑:MOV 和 MP4 可以顺利导入大多数剪辑软件;对 MKV 的支持则因软件而异。
- 网页嵌入:H.264 编码的 MP4 到处都能播放;VP9 编码的 WebM 是不错的免版税选择。
重新封装与重新编码
由于容器只是一个盒子,有时可以在不改动压缩视频的情况下,把各条流搬进另一个盒子。这叫作重新封装或流复制。它速度快,而且没有任何损失,但只有在目标容器支持这些编码格式时才可行:H.264 和 AAC 从 MKV 搬到 MP4 毫无问题,但 VP9 无法放进 MOV,DTS 音轨也不太适合 MP4。
当编码格式不兼容,或者你想要不同的编码格式、分辨率或码率时,就必须重新编码视频。重新编码耗时更长,而且使用有损编码格式时,每次都会损失一点画质,因此最好从原始文件转换,而不是从副本的副本转换。
在不同容器之间转换
视频转换器页面默认打开的是 AI 助手,它可以生成 MP4、MOV、MKV 和 WebM,并接受你在指令中指定的分辨率、帧率或码率,但不接受指定编码格式。在该页面上点击一下即可打开经典转换器,它可以输出 MP4、MOV、MKV、WebM、AVI、FLV 和 TS;当你选择一种输出格式时,它只会提供该容器能够容纳的编码格式,因此你不会意外地生成无效的组合。输出 MP4、MOV、MKV 和 WebM 时,它会在转换过程中重新编码视频,这也正是你能同时更改编码格式、分辨率或码率的原因;如果想保持接近原始的画质,请把这些设置保留为默认值(默认值与源文件一致)。输出 AVI、FLV 和 TS 时,如果保持默认设置,H.264 画面会原样复制、不重新编码,除非它来自 AVI 并要转换为另一种格式:AVI 只保留按解码顺序排列的帧时间,因此它的视频会被重新编码。一切都在你的浏览器中运行,因此文件不会上传到任何地方。对于最常见的任务,有一些页面已预先选好输出格式,包括 MKV 转 MP4、MOV 转 MP4 和 MP4 转 WebM。
本指南使用的工具
常见问题
01
02
03