问题几乎从来不出在编码格式上
来这个页面的人,通常是因为某个文件打不开,于是以为得把编码换掉。绝大多数情况下并不需要。 HEVC 完全合法地待在 MP4 里,而拒收你文件的那个播放器,反对的往往是外壳或者一个标记, 不是压缩方式本身。
所以正确的修法是转封装,不是转码。视频流从它原本所在的容器里被取出来,原样写进 MP4, 几秒钟完成,每一个像素都和原来一样。重新编码要花几分钟,还要为一个本来就跟画质无关的 问题赔上一代画质。
hvc1 这个标记,才是真正的修复点
MP4 内部有一个四字符的代码,用来说明 HEVC 流是怎么封装的。合法的取值有两个:hvc1 和 hev1。苹果的解码器只接受前者。很多工具写的是后者,产出的文件 VLC 播得好好的,而 QuickTime、iOS 相册和 Final Cut 全都拒收,还不给理由。
这个转换器在把 HEVC 流复制进 MP4 或 MOV 时,写的是 hvc1。就是这一个细节,把一段播不了 的录像变成能播的;这也是为什么即便编码和容器在技术上都没变,这次转换仍然值得做。
怎么读每一行上的标签
每个文件都会如实报告到底发生了什么,而不是统一转一个圈,因为这个区别对你是有意义的。 「未重新编码」意味着画面是复制的,和源文件完全一致。「画面直接复制,音频重新编码」意味着 视频完全没动,只有 MP4 存不了的音频格式被转了 —— 相机和录屏软件产出的 AC-3 就属于这种。 「已重新编码」则意味着这条流确实没法原样搬过去。
全部过程都在你的浏览器里完成。单个文件最大 500 MB,不会被送到服务器,引擎只下载一次, 之后由浏览器缓存。