跳到正文

容器与编解码器,以及转换速度为何差别如此之大

同样是“转换为MP4”,可能只要三秒,也可能要四十分钟;可能毫无损失,也可能明显损失一代画质。一个区别就能解释这两点,并让您预判即将得到的是哪一种。

最后审阅:

两者的区别

容器是盒子。MP4、MKV、MOV、WebM和AVI都是容器:它们规定了各部分在文件中如何排列、播放器如何找到每一部分的起点、时间戳如何记录,以及允许包含哪些附加内容——字幕轨、章节、多语言、封面图。

编解码器是里面的画面和声音的压缩方式。视频有H.264、H.265、VP9、AV1;音频有AAC、MP3、Opus、Vorbis、AC-3。

文件扩展名只代表容器,几乎所有混淆都源于此。两个.mkv文件的内容可能毫无共同之处;而装着同样H.264视频的.mp4和.mkv,在真正要紧的层面上,是装在不同盒子里的同一段视频。扩展名几乎无法告诉您转换会有多难。

重新封装还是转码:问题的全部

转换视频时,发生的是两件截然不同的事情之一。

重新封装(remux)是把现有的压缩流原样移入新容器,不进行解码。没有任何内容被重新压缩,因此画面与原来逐位相同,文件大小基本不变,两小时的电影几秒钟就能完成。只要里面的编解码器是目标容器所接受的,就可以这样做。

转码会解码每一帧,再重新编码。耗时与视频长度成正比,而且会损失一代画质——新编码器分辨不出旧编码器的压缩痕迹和真实细节,于是会花数据去保留它们。当编解码器与目标格式不兼容时,转码无法避免。

如果转换几乎瞬间完成,那是好结果。人们有时会因为太快而以为出了问题。事实恰恰相反。

哪些转换属于哪一种

**MKV转MP4:通常是重新封装。**大多数MKV装的是H.264加AAC,这正是MP4需要的。几秒完成,毫无损失。

**MOV转MP4:通常是重新封装,几乎算不上转换。**MP4规范本就是基于QuickTime的文件格式制定的,所以两者内部结构相同。iPhone的.mov装的是H.264或H.265,可以直接移过去。例外是专业素材——ProRes或DNxHD——必须转码,而且体积会大幅缩小。

**WEBM转MP4:总是需要转码。WebM装的是VP8、VP9或AV1,配Vorbis或Opus,这些都无法以能被可靠播放的方式放进MP4。转换需要实打实的时间,而且文件会变大**,因为这些较新的编解码器比H.264更高效。

**AVI转MP4:总是需要转码。AVI诞生于1992年,装的是DivX、Xvid或Motion JPEG。这种情况下文件通常会变小**,因为H.264的效率大约是里面那些编解码器的两倍——以一代损失换来实实在在的收益。

一种容器能装而另一种装不了的内容

这是转换中丢失内容的另一半,与画质毫无关系。MKV是常用容器中容量最大的:不同语言的多条音轨、一摞字幕轨、章节标记、封面图,甚至渲染样式字幕所需的字体文件。MP4实际上只能顺畅地装下一条视频轨和一条音轨,对其余内容处理起来很别扭。

所以把MKV转为MP4时,通常只保留每类的第一条,其余的都会丢下——这就是为什么有人最后得到的电影语言不对,或者转换本来就是为了字幕,结果字幕却没了。字幕尤其保不住:SRT和字幕组使用的带样式ASS格式,在MP4中都没有合适的位置。请先把它们提取出来,作为单独的.srt文件放在视频旁边,所有播放器和电视都能加载。

MOV带有剪辑软件用来同步不同镜次的时间码和摄像机元数据;这些都无法转过去。ProRes还可以带有透明通道(alpha),而MP4中的H.264不能——所以一段标题或Logo片段转换后会变成一个完全有效的视频,原来透明的地方变成黑色背景,除了您自己的眼睛之外没有任何提示。

实际影响

先确认是否真的需要转换。VLC、MPV和大多数当前的智能电视都能直接播放MKV和WebM。转换一个播放器本来就能播放的文件,白白耗费时间、体积和画质。真正的理由是苹果设备、较旧的游戏机、拒绝该格式的视频剪辑软件,或聊天软件。

剪切也利用了同样的原理。剪辑视频时可以直接复制已编码的视频而不重新编码,瞬间完成且无损——但剪切点必须落在关键帧上,而关键帧之间相隔一到十秒。这就是为什么直接复制的剪切会稍早一点开始,而精确剪切耗时更长、会损失画质:它要重新编码开头一段,才能准确落在您选中的那一帧上。

必须转码时,一次做好。每次重新编码都是永久性的,所以请从您手头最好的源文件转换,使用足以让第二代损失不可察觉的质量设置,并在检查结果之前保留原始文件。

常见问题

怎么查看文件里用的是什么编解码器?

在VLC中,依次选择“工具”和“编解码器信息”即可查看;MediaInfo是一款专门做这件事的免费工具。在进行耗时较长的转换之前值得先查一下——如果编解码器本来就兼容MP4,您可能即将花一小时去做几秒钟就能完成的事。

MKV比MP4更好吗?

作为容器,是的——它能装的更多,限制更少。MP4胜在兼容性,而这通常正是人们转换的原因。两者都完全不影响画质;画质完全取决于编解码器及其设置。

为什么我的WebM转成MP4后变大了?

因为VP9和AV1比H.264更高效,放弃它们就要把它们省下的空间还回去。您换来的是兼容性,而不是体积——MP4几乎在所有设备上都能播放,WebM则不然。

可以无损转换吗?

可以,只要编解码器允许重新封装——MKV转MP4和MOV转MP4通常都可以。当转码无法避免时,高质量设置可以让损失实际上看不出来,但永远不会真正为零。

为什么有时直接改扩展名也能用?

因为偶尔容器在底层确实是相同的——例如.f4v就是换了个名字的MP4。对其他所有情况都行不通,而且一个改了名却打不开的文件,比一个被明确拒绝的文件更让人困惑。可以试试,但不要依赖它。