浏览器里导出H.265,8.5秒和55.5秒差在硬件

0 阅读5分钟

手上有一段 60 秒的 1080p 街头演奏视频,116.7 MB。我在网页里把输出格式换成 MP4 H.265,档位选高清均衡。8.5 秒就出了片,43.99 MB。后来换了一段本身就是 H.265 的一分钟录屏,又把浏览器的硬件视频编码关掉再导。这回等了 55.5 秒。同一个导出按钮,等几秒还是等将近一分钟,差别全在这台机器有没有能用的硬件编码器。我干脆把几档都跑了一遍,耗时、体积和界面上冒出来的提示都记了下来。

我用的是图映 ImgIng(imging.cn/)的视频压缩,机器是一… Apple M4 的 Mac。系统 macOS 26.5,浏览器 Chromium 149。片子有两段。一段是维基共享资源上 Isak Zvegelj 拍的街头吉他演奏(CC BY 3.0)。我截了中间 60 秒再按手机常见的码率重新编码过,它不是手机原片。另一段是我拿脚本合成的 60 秒假讲义录屏,画面比真实录屏更静也更干净。每个档位只跑了一次。下面的秒数只代表这台机器。

能力面板写着原生硬件才是快路线

选 H.265 之前我会先看右边的「本机能力」。里面有一格叫「H.265 / HEVC 输出」,我一共见过它的三种状态:原生硬件、本地 WASM、当前设备不可用。正常打开 Chromium 时写的是原生硬件。格式选项下面的说明也写得很直白:优先用当前设备的硬件编码器,不下载 AI 模型。后两种状态是我把浏览器的硬件视频编码关掉以后才看到的。原片本身是 H.265 时它变成本地 WASM。原片是 H.264 时变成当前设备不可用。这一格基本决定了你后面是等几秒还是等将近一分钟。我现在导出前都先瞄它一眼。

硬件编码几秒就出片

面板写着原生硬件的时候 H.265 跑得和 H.264 差不多快。街头演奏那段选「高清均衡」用了 8.5 秒。「体积优先」4.0 秒,智能推荐 10.7 秒。讲义录屏的高清均衡是 8.5 秒,体积优先 3.9 秒。同一台机器上我还拿 HandBrake 的「Fast 1080p30」预设换成 x265 编码器编了街头演奏那段,花了 52.4 秒。两边的参数和画质目标都不一样。这个数只能说明硬件编码确实快,不能当成同档比较。

选 H.265 高清均衡,116.7 MB 的街头演奏 8 秒压到 43.99 MB

这张图先看右上角那一格「原生硬件 · H.265 / HEVC 输出」,再看右边的进度卡和结果卡。116.7 MB 的街头演奏选了高清均衡和 H.265。已用时间 0:08,出来的成品是 43.99 MB。左上那段灰字是 H.265 选项自带的说明,里面提到已经高度压缩的视频成品可能接近原大小。画面里的吉他手来自维基共享资源:Ljubljana Street Country Guitar Performance,Isak Zvegelj,CC BY 3.0,经截取压缩。

有两处是上手用了才注意到的。压完它只是先生成成品。要点「保存」才会写进磁盘,原视频不动。界面上的 MB 是按 1024×1024 字节算的。那份 43.99 MB 的成品实际有 46,131,638 字节,放进访达里看会显示得大一点。我第一次还以为保存时多出了什么东西,算了一下才对上。开始之前它还会给一个「码率预算估算(未试压)」。街头演奏选体积优先和 H.264 的时候估的是 10.05 MB,压完是 10.00 MB。这一回估得挺准。

换成HEVC同档体积小两到三成

体积是我最在意的部分。每个档位我都用 H.264 和 H.265 各导了一次。画质用 VMAF 打分,满分 100。成品先放大回 1080p,再拿去和原片逐帧比。

片子 · 档位H.264 体积 / VMAFH.265 体积 / VMAFH.265 的变化
街头演奏 · 高清均衡54.51 MB / 97.1643.99 MB / 96.67比 H.264 小 19.3%
街头演奏 · 体积优先10.00 MB / 58.167.49 MB / 54.95比 H.264 小 25.1%
讲义录屏 · 高清均衡8.93 MB / 98.036.28 MB / 98.42比 H.264 小 29.7%
讲义录屏 · 体积优先9.58 MB / 55.817.37 MB / 55.68比 H.264 小 23.0%

体积优先那两行的分数偏低。这一档会降到 1080×608 和 24 fps,打分时帧对不齐,只能当参考。我真正想看的是右边那一列。四行里 H.265 都更小。少的 19%,多的接近 30%。高清均衡档的分数两边只差零点几,我自己来回切着看也分不出来。

没有硬件时HEVC原片慢六倍多

关掉硬件视频编码之后我又拿一段 H.265 格式的讲义录屏试了试,19.69 MB。界面提示检测到 H.265 原片,当前设备没有可用的匹配硬件编码器。它会按需加载本地的 x265 核心接着压。体积收益不够或者编码失败的话就保留原片,这句它也写明了。这一次多下载了大约 24 MB 的编码核心。从点开始到出结果用了 55.5 秒。有硬件时同一段只要 8.5 秒。体积反倒小了一点:5.73 MB 对 6.01 MB。VMAF 是 97.97 对 98.32。我开着网络面板看完了全程。下载的是编码核心,没有一条上传视频的请求。原片是 H.264 的话就没有这条退路。能力面板显示当前设备不可用时,它会让你把格式换成 MP4(H.264)或者 WebM。

导出的HEVC文件四个浏览器都能播

压出来的东西别人能不能看,对我来说比省几兆要紧得多。我在同一台 Mac 上用 Chromium 149、Chrome 155、Firefox 151 和 WebKit 26.5 把三个 H.265 成品各播了一遍。四个浏览器都出了画面。Windows 上的 Chrome 和 Edge、安卓手机、iPhone 的 Safari 和微信内置浏览器我都没测。这几处还是空白。

现在我导 H.265 前后各多做一步。导之前看能力面板那一格。写着原生硬件再选 H.265,写着别的就先想想值不值得等。导完把成品拖进 Firefox 和 Safari 各开一下,两边都出画面再发出去。拿不准对方用什么设备,就另导一份 H.264 跟着发。另外这个视频压缩只能在电脑浏览器里用,手机上打开会提示去电脑端继续。没有硬件编码器的老电脑上 H.265 原片到底要等多久,我也说不好。手边没有这样的机器,我只在关掉硬件的 Chromium 上见过那 55.5 秒。