返回博客

视频容器与编解码器:MP4、MKV、H.264、H.265、AV1 详解

容器是盒子,编解码器是盒子里装的东西。通俗易懂地讲解 MP4、MKV、WebM、H.264、H.265、AV1、VP9,以及为何你的 .mp4 文件有时打不开。

By

你下载了一段视频,双击打开,得到一个错误:“无法播放此格式。“可是文件是 .mp4.mp4 不是该万能吗?你拿 QuickTime 试——没反应。用浏览器试——黑屏带声音。最后丢给 VLC,它终于能播了。哪里出了问题?

简短的答案是文件扩展名骗了你。.mp4 没告诉你文件里装的是什么,只告诉你内容是怎么打包的。你的播放器解不了的不是包装——而是里面那段以某种你的播放器不认识的算法编码的压缩视频流。一旦你理解了这一个区别,大量神秘的视频行为——编解码器错误、“有声无画”的故障、在手机上能播但在电视上不能的文件——会变成同一个问题穿着不同的衣服。

容器是盒子,编解码器是里面的东西,绝大多数播放问题都是把这两件事弄混的结果。

本指南将走完容器干什么、编解码器干什么、2026 年哪些组合常见、为什么”另存为 MP4”并不总意味着”另存为大家都能播放的东西”,以及如何诊断一段拒绝打开的视频。

核心要点 {#key-takeaways}

  • 容器是把多条轨道打包到一起的文件格式——视频、音频、字幕、章节、元数据。常见容器:.mp4.mkv.webm.mov.ts.m4s
  • 编解码器是压缩真正音视频数据的算法。 常见视频编解码器:H.264(AVC)、H.265(HEVC)、AV1、VP9。常见音频编解码器:AAC、Opus、MP3、FLAC。
  • 文件扩展名告诉你容器,不告诉你编解码器。 一个 .mp4 文件可以装 H.264、H.265 或 AV1 视频——区别决定它能不能播。
  • H.264 在所有现代设备上都能播;H.265 大约把码率减半但需要 2017 年之后的硬件;AV1 再减一刀但需要 2022 年及以后的设备做硬件解。
  • H.264 与 H.265 收专利费;AV1 与 VP9 免版税——这正是 YouTube、Netflix 与 Twitch 向 AV1 迁移的原因。
  • 重封装在不重编码的前提下换容器;换编解码器始终需要一次完整的重编码。
  • MP4 + H.264 视频 + AAC 音频仍是”到处都能播” 的最稳妥组合,适合你想随地播放的文件。

简明解释

设想你要寄一个包裹。硬纸盒是容器:有形状、有标签,对内容如何摆放有规定。盒子里真正装的——一本书、一部手机、一个用泡沫纸裹着的花瓶——是内容。两个外观完全一样的纸盒可以装完全不同的东西,盒子本身决定不了你能否用里面的东西;那取决于你会不会读这本书的语言、能不能给这部手机充电。

视频文件同理。容器——.mp4.mkv.webm.mov.ts.m4s——是打包格式。它规定文件在磁盘上的布局:视频轨在哪、音频轨在哪、字幕数据在哪、跳转索引在哪、元数据在哪。编解码器——H.264、H.265、AV1、VP9、AAC、Opus——是视频和音频轨道里真正的压缩字节如何编码的方式。容器是盒子;编解码器是里面内容使用的语言。

这种拆分存在的原因是两个不同的工程问题。把一个多轨道文件打包好,让播放器能瞬时跳到第 17 分钟、在英语和日语之间切换音轨、叠加字幕,是一个问题。把 4K 视频压缩到每秒几兆比特而不糊成一团,是另一个问题。容器解决前者;编解码器解决后者;它们各按自己的节奏演化。

接下来是尴尬的部分。一个 .mp4 文件可以装 H.264 视频加 AAC 音频——在任何浏览器、手机或媒体播放器上都能播。同一个 .mp4 扩展名也可以装 AV1 视频加 Opus 音频,这种文件在 Safari 16、2019 年的 iPad、2020 年的 Apple TV 上会拒绝播放。同样的扩展名。同样的容器规范。完全不同的可播放性。容器没告诉你文件能不能播;编解码器告诉了你一切。

一旦内化了这一点,本文剩下的部分就是把哪些编解码器常见、哪些设备支持哪些、文件落入错误组合时该怎么办填进去。

容器与编解码器究竟如何运作

每个视频文件至少有两层:把轨道布置在磁盘上的容器,以及决定每条轨道里数据如何压缩的一个或多个编解码器。 两层都得被你的播放软件理解,文件才能播。

容器细看

容器存放多条轨道——通常一条视频轨、一条或多条音频轨,外加可选的字幕、章节标记、附件(字体、封面)和元数据。它通常还包含一个索引或时间码表,告诉播放器哪个字节偏移对应哪个时间戳,让跳转能直接跳到第 17 分钟而不必从头解码。

2026 年常见的容器:

  • MP4 —— ISO Base Media File Format(ISO/IEC 14496-14)。 迄今最通用的容器。流媒体服务、浏览器、手机相机和现代 HLS(CMAF 内的 fMP4 分片)都在用。源自 Apple 的 QuickTime MOV。如果你要文件到处都能播,就选 MP4。
  • MKV —— Matroska。 开放、免版税、极其灵活。支持任意编解码器组合、无限轨道、章节菜单、内嵌字体、多种字幕格式。在桌面视频、动漫字幕组和光盘压制里很流行。浏览器与智能电视支持不够普遍。
  • WebM。 Google 为 Web 优化的 MP4 替代品。几乎总是承载 VP9 或 AV1 视频加 Opus 音频。Chrome、Firefox、Edge 支持;Safari 支持来得较晚。
  • MOV —— QuickTime File Format。 Apple 的容器,技术上是 MP4 的”父亲”——两者大部分内部结构相同。iPhone 和 Apple 编辑工具的常见输出。
  • MPEG-TS(.ts)。 为广播卫星和有线电视而设计——丢包是日常。被旧式 HLS 分片和一些 IPTV 服务使用。鲁棒但与 fMP4 相比效率不高。
  • Fragmented MP4(.m4s)。 MP4 的一种变体,被切成小且独立的片段。被 MPEG-DASH、现代 HLS 和 Common Media Application Format(CMAF) 使用,从而让一组文件可同时服务两种协议。一个 HLS .m4s 分片里就是这个东西——同样的 MP4 盒子结构,只是被切成了小块。

视频编解码器细看

每一代编解码器都在压缩效率与编解码 CPU 成本及许可复杂度之间做取舍。

  • H.264(AVC)—— Advanced Video Coding,ITU-T H.264 / ISO/IEC 14496-10。 2003 年标准化,自约 2010 年起每部智能手机、GPU、智能电视和游戏主机都用硬件解。收专利费——由 MPEG LA 等专利池管理。仍是通用的最低公分母:MP4 容器中的 H.264 文件到处都能播。多数视频会议、监控录像和消费级摄像头仍在用它。
  • H.265(HEVC)—— High Efficiency Video Coding,ITU-T H.265 / ISO/IEC 23008-2。 2013 年标准化。在同等画质下比 H.264 高约 50% 的压缩效率,这是能不能交付 4K 的分水岭。2017 年及以后的设备硬件解广泛。难点在许可:HEVC 专利分散在 MPEG LA、HEVC Advance、Velos Media 以及若干个人持有者之间,版税局面相当混乱,以至于一些浏览器(典型是大多数平台上的 Firefox)只有在系统已经提供硬件解码时才启用 H.265。Apple TV+、Netflix 4K HDR 以及面向有能力客户端的现代 HLS/DASH 码流在用它。
  • AV1 —— AOMedia Video 1。 2018 年由开放媒体联盟(Google、Netflix、Amazon、Apple、Microsoft、Mozilla)标准化,目的就是逃离 HEVC 的版税泥潭。免版税。比 H.265 高约 30% 的压缩效率。AV1 硬件解码 2022 年前后登陆旗舰手机和较新 GPU,如今已成新设备标配;编码仍很耗 CPU,所以实时 AV1 还很罕见。YouTube、Netflix 和 Twitch 用它向有能力的客户端发送高分辨率码流。
  • VP9。 Google 的 AV1 前身,2013 年发布。免版税。压缩效率与 H.265 大致相当。AV1 全面铺开前 YouTube 大量使用,并仍作为能解 VP9 但不能解 AV1 的设备的兜底而存在。Apple 栈对它显著缺席——Safari 直到近期才加入 VP9 软件解码。

音频编解码器,简略说

音频通常比视频更少兼容性麻烦,但同样的拆分也适用。

  • AAC。 通用默认。与 MP4 中的 H.264 搭配以求最大兼容性。
  • MP3。 遗产但仍无处不在,尤其在音乐文件里。
  • Opus。 现代、开放、免版税,在语音和音乐码率下都很高效。WebM 默认,Discord、WhatsApp 和多数 VoIP 在用。
  • FLAC。 无损。用于音乐存档,不用于视频原声。
  • Dolby AC-3 与 E-AC-3(Dolby Digital、Dolby Digital Plus)。 广播和 5.1/Atmos 流媒体环绕声中常见。

为什么 .mp4 不总意味着 H.264

这是让多数人栽跟头的陷阱。MP4 只是外壳。一个 AV1-in-MP4 文件完全合法,但在 Safari 16、老 Apple TV 或任何缺 AV1 硬件解的电视上都不能播。同理,H.265-in-MP4 在老设备上、VP9-in-MKV 在 Apple 设备上、Opus-in-MP4 在多数消费硬件上都一样。当一段视频”放不了”时,第一个问题永远不是”扩展名是什么”——而是”编解码器是什么”。

容器与编解码器在 HLS 和 DASH 中如何相遇

流媒体协议建立在这一切之上。旧式 HLS 发布的是承载 H.264 + AAC 的 MPEG-TS 分片。现代 HLS 使用 CMAF 下的 fMP4 分片,按客户端承载 H.264、H.265 或 AV1。DASH 的 fMP4 分片 使用同一种容器格式,可承载播放器声明支持的任意编解码器。ABR 梯度通常在各档位使用同一编解码器——中途换编解码器技术上可行但少见。受 DRM 保护的内容使用同样的容器与编解码器,只是被加密了——在其上叠一层 MPEG Common Encryption,编解码器本身不变,但字节没有许可证就读不了。

一旦你开始从网上保存码流,这张矩阵在实践中就重要起来——这正是为何像 VidMost 这样的工具会把输出规范化为已知良好的组合,而不是保留源端碰巧使用的奇异编解码器。

2026 年现实中的编解码器支持

编解码器支持在浏览器、设备和操作系统间是碎片化的,并且这张矩阵每年都在变。 以下是 2026 年大致情况的快照。

浏览器。 Chrome 和 Edge 可播 H.264、H.265(在系统具备硬件支持时)、AV1、VP9 与 VP8。Safari 17+ 可播 H.264、H.265 和 AV1,但其 AV1 支持要求设备具备 AV1 硬件解码——也就是 A17 Pro / M3 级别芯片或更新;没有软件兜底。Safari 历史上对 VP9 的支持缺失,最近有所改善。Firefox 全面支持 H.264、AV1、VP9 和 VP8,并且仅在系统提供硬件解的情况下支持 H.265——这在 Apple Silicon Mac 和较新的 Windows PC 上可用,但在多数 Linux 安装上不可。

移动设备和 Apple 设备。 在 Apple 自研芯片上,AV1 硬件解码随 A17 Pro(iPhone 15 Pro 和 Pro Max)以及 M3 代 Mac 到来;更早的 iPhone、iPad 和 Mac 在 Safari 里完全没有 AV1。Android 旗舰从 2022 年起几乎都内置 AV1 硬件解码。2021 年之前的老 Apple TV 和智能电视卡在 H.264 与 H.265。

流媒体服务按客户端选用。 Netflix 向有能力的客户端(近期 iPhone、现代智能电视、当代主机)发送 AV1,并在老设备上沿 H.265 回落到 H.264。YouTube 也是如此,VP9 作为中间档兜底。Twitch 正在为更高分辨率直播推出 AV1,同时保持 H.264 作为通用基线。Apple TV+ 向 Apple 设备发送带 HDR 的 H.265,其他设备回落到 H.264。

硬解与软解。 硬解是让 4K 在手机上不爆电池就能播放的关键——SoC 内部一块专用硅块以一小部分 CPU 成本完成工作。对不受支持的编解码器,软解通常在 CPU 余量充足的桌面上能工作(VLC、mpv 和 ffplay 乐于在 2018 年的笔记本上软解 AV1),但在手机和嵌入式设备上要么失败、要么烧电。当一段视频在笔记本上能播但在手机上卡顿时,硬解不匹配是最常见的原因。

一个有用的心智模型:H.264 是无处不在的通用默认,H.265 是你能掌控设备清单时的稳妥升级,AV1 是今天可以发给近代硬件、但对 2022 之前的设备不能假定其支持的未来。

想要把视频保存下来意味着什么

这里”容器对编解码器”的拆分不再是学术问题。如果你曾爬过某个流媒体站点、合并过一文件夹 .ts 分片,或下载过一段视频却发现编辑器拒绝导入,问题几乎总是编解码器不匹配——而不是容器。

有三种痛点反复出现:

  • 流媒体分片不是友好格式。 成功抓到 HLS 或 DASH 流的零件后,你会留下一堆 MPEG-TS 文件或分片 MP4 块。消费级播放器对一文件夹的这种东西会消化不良;你需要按正确顺序串接并重新封装成一个 MP4 才能作为单文件播放。
  • 源编解码器不一定对编辑器友好。 如果源端给你的浏览器发送的是 AV1,你的视频编辑器可能不支持 AV1,或者因为依赖软解而在拖动播放头时卡顿。即便 H.265 在较老的编辑工具里也是参差不齐。一段在浏览器里好好的文件,落到要拿它干正事的人手里就成了废件。
  • 设备碎片化总在最糟的时候咬你。 你为平板下了一段 4K H.265 电影,同步给孩子的老 iPad,结果发现 iPad 缺少合适的 H.265 profile 支持。或者你保存了一段 YouTube AV1 码流,发现智能电视的 USB 播放器只会 H.264。

VidMost 的默认输出是 .mp4 加 H.264 视频加 AAC 音频——当今兼容性最广的组合,每部现代手机、电视、浏览器和编辑工具都用硬件解。希望最大压缩或保留源编解码器(4K HDR 流的 H.265、YouTube 的 AV1)的用户可以配置,但默认就是”到哪都能播”。VidMost 自动处理重封装:分片被重组、编解码器字符串与输出剖面被核对,需要重编码时它会作为明确选项呈现,而不是悄无声息地发生。

常见误区与误解

关于容器与编解码器有几个反复出现在论坛里的观念。值得澄清。

  • “MP4 是编解码器。” 不是,MP4 是容器——具体是 ISO Base Media File Format。里面的编解码器可能是 H.264、H.265、AV1 或其他几样东西。“以 MP4 格式”是事实,但不知道编解码器基本没用。
  • “MKV 比 MP4 好。” 它们是服务不同需求的不同容器,不是相互竞争的画质等级。MKV 更灵活——更多编解码器组合、更丰富的元数据。MP4 兼容性更广。存档或带多条字幕和音轨时挑 MKV;分享或流送时挑 MP4。
  • “AV1 总是比 H.264 好。” AV1 压缩效率高得多——这是真的。AV1 对你”更好”与否,取决于你播放所用的设备是否有硬件解码器。一段 4K AV1 文件在近期旗舰手机上美轮美奂,在 2019 年的廉价 Android 上根本放不了。H.264 总是能播。
  • “码率越高画质越好。” 仅在同一编解码器、同一内容下成立。同样 5 Mbps 的 H.265 通常比 5 Mbps 的 H.264 好看,因为 H.265 把每个比特榨得更狠。跨编解码器比码率毫无意义。
  • “改文件扩展名能解决播放问题。” 几乎从不。把 .mkv 重命名为 .mp4,文件内部的字节并不会变,多数播放器无论扩展名都读文件头来识别容器。改了名的文件失败得和原来一样彻底。
  • “VLC 什么都能播,所以编解码器不重要。” VLC 在桌面上软解几乎一切,这让它成为”文件下对了吗”的首选工具。但只要你需要编辑、分享,或在手机或电视上播放,编解码器兼容性就回来了。VLC 的宽容是 VLC 的属性,不是文件的属性。

结语

“容器对编解码器”的拆分是那种解释了大量视频怪事的细小区别。一旦你能在看一个文件时同时问”外壳是什么”和”里面是什么”,编解码器错误信息就不再神秘,而”在电脑上能播但在手机上不能”的情况也开始合情合理。

经验法则十五年没变:MP4 + H.264 + AAC 是最稳妥的”到处都能寄”组合。H.265 是已知目标设备较新时的升级。AV1 是为下个十年优化时的押注。如果你想跳过手工重封装那一步、直接把一段流媒体视频另存为人人都能播的东西,VidMost 默认输出 MP4 + H.264 + AAC 并替你处理细节。

相关阅读

常见问题

容器和编解码器有什么区别?
容器是把一切包起来的文件格式——视频轨、音频轨、字幕、章节标记、元数据。常见容器有 MP4、MKV、WebM、MOV 和 MPEG-TS。编解码器是压缩或解压容器内实际音视频数据的算法。常见视频编解码器有 H.264、H.265、AV1 和 VP9。可以把容器当作盒子,编解码器当作盒子里内容使用的语言。不同容器可以装相同编解码器,同一容器也可以装不同编解码器。
MP4 是编解码器还是容器?
MP4 是容器,不是编解码器。`.mp4` 扩展名指的是 ISO Base Media File Format(ISO/IEC 14496-14),一种源自 Apple QuickTime MOV 的打包格式。一个 MP4 文件可以装 H.264、H.265、AV1 甚至 MPEG-4 Part 2 视频,搭配 AAC、MP3、AC-3 或其他音频编解码器。当有人说“转成 MP4”,几乎都意味着“把 H.264 视频和 AAC 音频装进 MP4 容器”——这是兼容性最广的组合。
MP4 既然万能,为何我的 .mp4 还播不了?
因为 MP4 只是外壳。真正的问题是里面的视频用什么编解码器。装有 AV1 视频的 MP4 在老版本 Safari、2022 年之前的 Apple TV,或缺乏 AV1 硬件解码的电视上都播不了——容器没问题,是编解码器不被支持。同样的问题也会出现在没有 HEVC 支持的设备上的 H.265。假定容器有问题之前,先用 MediaInfo 或 `ffprobe` 跑一下,看看里面真正用的是什么编解码器。
MP4 和 MKV 哪个更好?
没有绝对更好——它们服务于不同需求。MP4 是更通用的容器:浏览器、手机、智能电视和流媒体服务都原生支持。MKV(Matroska)更灵活:支持更多编解码器组合、无限的字幕和音轨、章节菜单,以及有序章节这类不寻常特性。分享或流送选 MP4。存档、压制或带多条字幕轨道时 MKV 更合适。同一编解码器在任一容器中的画质完全一致。
我该用 H.264、H.265 还是 AV1?
需要最大兼容性用 H.264——每台现代设备都用硬件解它。想在同等画质下把码率减半且目标设备在 2017 年之后,用 H.265(HEVC)。想要当今最高压缩效率、受众使用近期浏览器和 2022 年及以后的设备,用 AV1。AV1 编码仍比 H.264 慢得多,所以实时使用并不合适。对大多数希望文件到处都能播的用户来说,MP4 中的 H.264 仍是正确答案。
为什么我的 Apple TV 能播 H.265 却不能播 VP9?
Apple 的视频栈支持 H.264 和 H.265,因为这是 Apple 为 iTunes Store 和 Apple TV+ 押注的编解码器。VP9 是 Google 的编解码器,AV1 之前 YouTube 大量使用它,而 Apple 从未在 tvOS 或 iOS 上提供 VP9 硬件解码。macOS 上的 Safari 较晚才加入 VP9 软件解码,许多 Apple TV 型号至今根本无法解 VP9。这就是为什么你在 Apple 设备上看 YouTube 会拿到 H.264(最新设备上有时是 H.265 或 AV1),而在 Windows Chrome 上则是 VP9。
可以不重编码改一段视频的编解码器吗?
不行。换编解码器始终需要解码现有视频帧并用新编解码器重编码,这要耗时并损失少量画质。你*可以*不重编码做的是换容器——这叫重封装。`ffmpeg -c copy` 这类工具能把同一套已编码的流从 MKV 移到 MP4,或把 MPEG-TS 分片合并成单个 MP4,而不触碰编解码器。重封装又快又无损;重编码又慢又有损。
AV1 是未来吗?
大概率是,但需要数年。AV1 比 H.265 在同等画质下大约高 30% 的压缩效率,而且免版税,对不愿支付 HEVC 授权费的流媒体服务很有吸引力。YouTube、Netflix 和 Twitch 都已向有能力的设备发送 AV1。关键在硬件:AV1 硬件解码器在 2022 年及之后的手机、GPU 和智能电视上很常见,但更老的设备只能软解,会耗电并卡 4K。预计 AV1 将在十年末主导,而 H.264 还会再做十年通用兜底。