chromium-vaapi硬件加速
文章目录
硬件加速
硬件加速在智能手机上很常见,可以使用手机处理器中的GPU对播放视频进行硬件解码,相比软件解码,耗电低,手机不易发烫。
Linux下的浏览器
众所周知Linux下的Chromium Chrome Firefox都没有开启视频播放硬件加速。得益于Chromium的开源,有人做出了对VA-API支持的chromimu-vaapi,前段时间我已将自己的笔记本重装为Arch Linux,安装chromium-vaapi变得简单。
添加archlinuxcn源,可以选择一个国内镜像,例如163
1
2sudo echo "[archlinuxcn]
Server = http://mirrors.163.com/archlinux-cn/$arch" >> /etc/pacman.conf安装archlinuxcn的PGP Keys
1
sudo pacman -Syy && sudo pacman -S archlinuxcn-keyring
安装chromium、驱动、检测VA-API工具 ,由于我的笔记本CPU是ADM安装是这样的,Intel可以参照ArchlWiki相对应的方法安装必要的驱动
1
sudo pacman -S chromium-vaapi libva-mesa-driver libva-utils
执行vainfo命令,查看输出,VA-API是否工作正常
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21vainfo: VA-API version: 1.7 (libva 2.7.1)
vainfo: Driver version: Mesa Gallium driver 20.0.7 for AMD RAVEN (DRM 3.36.0, 5.6.13-arch1-1, LLVM 10.0.0)
vainfo: Supported profile and entrypoints
VAProfileMPEG2Simple : VAEntrypointVLD
VAProfileMPEG2Main : VAEntrypointVLD
VAProfileVC1Simple : VAEntrypointVLD
VAProfileVC1Main : VAEntrypointVLD
VAProfileVC1Advanced : VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointVLD
VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
VAProfileH264Main : VAEntrypointVLD
VAProfileH264Main : VAEntrypointEncSlice
VAProfileH264High : VAEntrypointVLD
VAProfileH264High : VAEntrypointEncSlice
VAProfileHEVCMain : VAEntrypointVLD
VAProfileHEVCMain : VAEntrypointEncSlice
VAProfileHEVCMain10 : VAEntrypointVLD
VAProfileJPEGBaseline : VAEntrypointVLD
VAProfileVP9Profile0 : VAEntrypointVLD
VAProfileVP9Profile2 : VAEntrypointVLD
VAProfileNone : VAEntrypointVideoProc打开chromium,输入chrome://flags,开启#ignore-gpu-blacklist,开启后会提示重启chromium,重启即可。
由于YouTube的视频默认输出为 VP8/VP9,需要安装扩展h264ify
打开 chrome://gpu 查看Video Decode是否为Hardware accelerated,打开YouTube播放一个视频,打开 chrome://media-internals 查看Player Properties 中的video_decoder
- 硬件解码: MojoVideoDecoder, GpuVideoDecoder;
- 软件解码: VpxVideoDecoder, FFmpegVideoDecoder.
这里描述的相关操作来自于https://wiki.archlinux.org/index.php/Chromium#Hardware_video_acceleration