同一个视频,手机上能放,电脑上打不开,剪辑软件又提示「格式不支持」。很多人第一反应是文件坏了。其实大部分时候不是坏了,而是你没看清楚一个基本事实:MP4、MOV、MKV、WebM 不是编码器,它们是容器。
容器和编码,不是一回事
容器像盒子,编码像盒子里的东西怎么压缩:
- 容器:决定音视频、字幕、章节、时间戳怎么打包在一起。
- 编码:决定画面和声音本身用什么算法压缩。
- profile / level:编码内部的一层参数,决定解码器需要多复杂的能力。
所以「MP4」只说明盒子是 MP4,不代表里面一定是 H.264。MP4 里可以放 H.264、H.265、AV1、VP9,甚至一些更冷门的东西。反过来,MOV、MKV 里也可以放很常见的 H.264。
这就像 ZIP 里面装的是 DOCX 还是 JPG:盒子一样,内容不一定一样。
常见组合
| 容器 | 常见编码 | 适合场景 |
|---|---|---|
| MP4 | H.264 + AAC | 最稳的通用组合,手机、网页、剪辑软件基本都认 |
| MOV | H.264 / ProRes | 苹果生态、专业剪辑常见 |
| MKV | H.264 / H.265 / 多音轨 | 桌面播放、存档,兼容性偏桌面 |
| WebM | VP9 / AV1 | 网页播放、体积更小,但兼容性更挑 |
如果你只记住一句话:要发给别人、要在浏览器里播放、要进剪辑软件,先转成 MP4/H.264 + AAC。
为什么“能预览”不等于“能处理”
播放器和剪辑软件的要求不一样。
播放器可能足够宽容,遇到 H.265、VP9、AV1 也能试着播。但剪辑软件要的是稳定解码、精确 seek、逐帧处理。同一个文件,浏览器能放,剪辑软件却报错,这很正常。
浏览器里更是这样。能预览只说明浏览器能解码;能不能转码、能不能抽帧、能不能稳定处理,取决于具体编码器和页面使用的 WASM 引擎。这也是很多工具页「明明能放,但处理不了」的原因。
什么时候该转格式
别为了转而转。通常有三种情况值得转:
- 给别人发文件:统一到 MP4,比解释「你换个播放器」省事。
- 剪辑软件不认:先转 H.264,比反复试插件靠谱。
- 体积或画质有问题:转格式时顺便调 CRF、分辨率、预设。
如果文件本身没问题,只是想让所有设备都能放,通常一步就够了:
ffmpeg -i input.mov -c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 192k output.mp4
如果你希望尽量少重编码、只换容器:
ffmpeg -i input.mkv -c copy output.mp4
但 -c copy 有前提:输出容器必须能装下原来的编码。MKV 里的某些编码放到 MP4 里未必合适。
播放不了、导入不了,先看这三步
- 后缀是什么? 只能判断容器,不能判断编码。
- 编码是什么? 用
ffprobe、播放器信息面板或工具页看流信息。 - profile 是不是太新? 同样是 H.264,也可能因为 profile/level 太高而播不了。
一个常见例子:手机拍的 H.265 视频在老电脑上放不出来,文件其实没坏,只是播放器不支持这种编码。这时不是修文件,而是转编码。
别把这些混在一起
- MP4 ≠ H.264。 MP4 是容器,H.264 是编码。
- MKV ≠ 一定高质量。 MKV 只说明封装灵活。
- WebM ≠ 一定更小。 WebM 常用 VP9/AV1,但结果取决于内容和参数。
- MOV ≠ 一定更适合剪辑。 苹果生态友好,不等于所有软件都稳定。
动手试
在 格式转换页可以直接统一成 MP4,并按需调编码、码率、帧率、分辨率;如果同时想压体积,去 视频压缩页调 CRF。
这些都在浏览器里完成,文件不上传。
FAQ
Q:MKV 转 MP4 画质会变差吗? A:如果只是换容器,不重编码,画质不变。如果重新编码,就取决于 CRF 和分辨率设置。
Q:为什么同一个 MP4 在不同设备上表现不一样? A:因为里面的编码、profile、分辨率、码率可能都不同。MP4 只是容器。
Q:WebM 更新,是不是一定更好? A:不一定。WebM 适合网页和体积敏感场景,但兼容性不如 MP4/H.264。
Q:我要发给别人,最稳的做法是什么? A:先转 MP4/H.264 + AAC,再根据体积决定要不要压缩。