经过与ChatGPT反复探讨(挑战)与实机测试,目前官方Chrome对Linux平台的GPU硬件编解码支持度还是可以的,最新的141.0.7390不加任何启动参数启动,已经可以支持主流的H264,H265以及VP8,VP9的硬件解码:

带上启动参数:
1 | google-chrome --enable-features=PlatformHEVCDecoderSupport,VaapiVideoDecoder,AcceleratedVideoEncoder,AcceleratedVideoDecodeLinuxGL,VaapiVideoEncoder,AcceleratedVideoDecodeLinuxZeroCopyGL |
能够启用完整的VAAPI硬件编码:
而官方编译的Chromium由于版权问题,反而可能连基本的ffmpeg视频解码都成问题(特别是snapshot编译),除非是社区编译版本并且有明确说明启用了VAAPI支持或者打补丁的,例如:
https://github.com/StaZhu/enable-chromium-hevc-hardware-decoding
可以下载到:chromium 142.0.7427.0,实测也是支持硬件VAAPI编码和解码的。
本次测试实机环境是:
1 | Intel(R) Core(TM) i5-8400 |
然后说回Electron,由于chromium这么多年在Linux平台上的毫无进展,导致官方一律关闭硬件支持(编码和解码都是纯CPU软编解,所谓的硬件加速仅仅是渲染加速),即使通过带参数运行启用了VAAPI加速也是虚假的信息,解决的办法只有一个——自己从源码编译(目前还没找到有社区提供预编译版本的,可能和FFMPEG没有预编译版本一样,版权怪兽影响的结果……)。
ChatGPT说能打补丁、或者嵌入一个官方预编译的Chromium二进制,只编译Electron的说法都是过时消息了,老老实实下载完整的包含node.js,chromium,electron和第三方依赖的完整120G源码、编译170G文件吧(记得用16G以上内存的机器,稳定的下载网络,否则下载进度和文件缓存分分钟清零给你看……)。
ChatGPT给出的编译说法也大多是过时和错误的,直接参数官方最新手册:
https://www.electronjs.org/zh/docs/latest/development/build-instructions-gn
一步都不要漏掉,然后在官方编译参数上加:
1 | git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git |
成功完成后,可以在out/Release目录下得到dist.zip即打包的electron linux x64版本能正常启用VAAPI编解码。

