格式转换基础6 分钟阅读

视频打不开怎么办?先分清封装和编码,再决定怎么转 MP4

打不开的视频其实是两个不同的问题:播放器不认封装,和解不了编码,处理方法完全不同。先用工具读一遍文件再动手,能省下白转二十分钟的经历。
更新于 2026年11月1日

按顺序使用的工具

  1. 1 媒体信息分析器
  2. 2 WebM 转 MP4

最后得到什么: 一个准确的判断:要么换封装就能播,要么明确知道需要重新编码。

别人发来一个视频,双击,打不开。多数人的第一反应是找工具转成 MP4——一半情况下确实好了,另一半情况下,你花了二十分钟转一个文件,而它的问题从来就不在封装上。

这篇讲的是怎么在动手之前,就知道自己属于哪一半。

封装和编码是两回事

一个媒体文件有两层,分清这两层,后面所有判断都顺理成章。

封装(container)是盒子:MP4、WebM、MKV、TS、MOV。它规定轨道怎么摆放,不规定里面装什么。每种封装都有公开规范——MP4 对应 ISO/IEC 14496-12,Matroska 和 WebM 各有自己的文档。

编码(codec)是盒子里的东西:视频是 H.264、H.265、VP9、AV1,音频是 AAC、Opus、AC-3。

播放器报"打不开",通常是封装层的问题——它连轨道都找不到,根本没机会尝试解码。而播放器能打开、画面黑屏或者没声音,那是编码的问题——换多少次封装都没用。

换盒子便宜且无损,换里面的东西两者都不占。

对应两种处理方式:

  • 换封装(remux):把编码好的数据原样拷进新盒子。快,零画质损失。盒子有问题时这是正确做法。
  • 重新编码(transcode):把每一帧解出来再压一遍。慢,有画质损失。编码有问题时这是唯一的办法。

第一步:读文件,别猜

把文件丢进视频信息,它会给出封装、视频和音频编码、分辨率、时长、轨道结构。

英文界面,使用生成的四秒 MP4,包含 AVC/H.264 视频和 AAC 音频。工具未能读取的码率显示为不可用,没有用估算值代替。

对照下面的清单对号入座:

  • 封装是 MKV 或 TS,编码是 H.264 + AAC——播放器只是不认这个盒子。换成 MP4,一两分钟的事。
  • 封装是 MP4,视频编码是 H.265——盒子没问题,是播放器缺 H.265 解码器。换封装救不了,需要重新编码成目标播放器支持的格式。本站 WebM 转换器只针对 WebM 输入,H.265 的 MP4 需要其他支持该源格式的编码工具。
  • 音频编码是 AC-3 或 DTS——从光盘导出的文件常见。有些浏览器和手机即使装在 MP4 里也放不出来。要处理的是音频轨,不是视频轨。
  • 根本没有音频轨道——这不是格式问题,是录的时候就没录上声音。

最后这种情况最常被忽略:一个"坏掉的视频",其实只是录制工具没接到麦克风。

第二步:该换封装的换封装,该重编码的重编码

TS 转 MP4。 TS 文件里如果是兼容的 H.264 视频 + AAC 音频,用 TS 转 MP4。它把编码流直接拷进 MP4,不重新编码,快且无损。

WebM 转 MP4。 浏览器录屏得到的 WebM,需要 H.264/AAC 兼容性时,用 WebM 转 MP4。注意这个工具会解码后重新编码,不是换封装:需要处理时间,也可能损失一点画质。

WebM 转换会重新编码,与上文的 TS 换封装不同。英文界面中的生成样本从 88.9 KB 增至 122.3 KB。

改扩展名为什么没用

把 video.webm 改名成 video.mp4,什么都没有转换。封装信息写在文件内部,不在文件名上。较真的播放器会以很奇怪的方式失败,有些干脆拒绝打开。

这一条之所以单独写,是因为这是大多数人会尝试的第一件事。

哪些文件救不回来

有一类文件这套流程救不了,早点认出来能省一下午。

DRM 加密的流。 源是 DRM 保护的,分片就是密文,任何封装操作都还原不出能播的画面。

目标设备不支持该编码。 一个 H.265 文件,改扩展名也好、换封装也好,在只支持 H.264 的设备上都不会变得能播。出路只有两条:换一个带对应解码器的播放器,或者真的重新编码一次。

常见问题

MKV 或 TS 转 MP4,画质会变差吗? 换封装不会。编码数据原样搬进新容器,画质、音质、时长都不变,体积也只差封装开销。TS 有包开销和填充,转完甚至常常更小。

WebM 转 MP4 后文件变大了,是坏了吗? 不是。重新编码的输出大小取决于目标码率,浏览器录屏的 WebM 转成 H.264/AAC 的 MP4,体积变大是常见现象。

视频能播但没声音,是文件坏了吗? 多半是音频编码不兼容(比如 AC-3、DTS),或者文件里压根没有音轨。用视频信息读一遍就有答案。

搞清楚之后的下一步

要么得到一个到处都能打开的文件——因为问题出在封装;要么得到一个明确结论——问题在编码,需要重新编码。

这背后分层的细节——轨道、分片,以及为什么换封装能保住它们——下载引擎那篇讲得更细。