在ubuntu kylin优麒麟中,让浏览器和播放器硬解1080和4k视频

落爺英雄遲暮 提交于 2020-03-01 05:48:39

在 Linux 上使用 Google Chrome 或 Chromium 浏览器观看bilibili、爱奇艺等网站的高清视频时, CPU 使用率会很高,如果你用的是笔记本,电脑会发热而且电池会很快用完。这是因为 Chrome/Chromium和firefox在 Linux 上不支持硬件加速的视频解码。( Firefox 的问题目前没有办法解决。)

如何解决这个问题呢?请往下看:

1、驱动程序

请使用apt命令安装vdpau和vaapi驱动和信息查看工具。

sudo apt install mesa-vdpau-drivers mesa-va-drivers vdpau-va-driver vainfo vdpauinfo

如果是intel或amd的显卡,二者都有官方的开源驱动,

如果是nvidia显卡,请在“软件和更新”的“附加驱动”中选择闭源驱动。

驱动程序安装完毕后,请查看显卡支持的视频解码信息。执行信息查看工具。

vdpauinfo

vainfo

 

2、chromium浏览器设置

带有硬件加速功能的chromium浏览器还没有合并进入正式版,所以要添加开发版的分支。

在此要感谢软件的维护者Saikrishna Arcot

项目的源代码托管在github上。https://github.com/saiarcot895/chromium-ubuntu-build

项目的安装包托管在lauchpad上。https://launchpad.net/~saiarcot895/+archive/ubuntu/chromium-dev/+packages

可以通过下载安装包来安装,也可以选择通过ppa来安装。个人觉得,ppa更方便一些。目前支持16.04及以上版本的ubuntu kylin优麒麟。

sudo add-apt-repository ppa:saiarcot895/chromium-dev

更新软件源。

sudo apt update

更新chromium。

sudo apt dist-upgrade

如果找不到app,请执行安装命令。

sudo apt install chromium-browser

开启视频硬解加速功能。在浏览器地址栏中输入“chrome://flags”。

搜索关键词“video”,将选项Hardware-accelerated video decode设置为enable。

3、验证视频的解码方式

浏览器是否在使用硬解码呢?我们需要验证一下。在浏览器中播放一段视频,cpu占用率已经降到10%左右了。

在新标签中输入“chrome://media-internals/”。点击正在播放的视频链接。如果选项video_decoder中显示的值为MojoVideoDecoder。恭喜你,浏览器已经使用显卡硬解视频了。

PS:关于MojoVideoDecoder。

“Mojo视频解码器”在windows视窗操作系统的chromium中是默认开启的,而这一里程碑式的特性在Linux系统上也实现了。

Mojo视频解码器是什么?与浏览器的其他特性比起来,谷歌对这项工作谈论不多。直到Phoronix的一位读者说,Linux桌面系统想要使用这个下一代的视频解码器需要一个补丁。大家这才注意到它。

自2018年11月初以来,Mojo视频解码器已被用于windows视窗操作系统、苹果macOS操作系统和谷歌chrome操作系统。由于时间的原因,Linux的默认启用在12月才出现。

几年来,Mojo一直是Chrome使用的进程间通信机制(inter-process communication (IPC) mechanism)。或者更具体地说,是进程间和进程内消息传递的IPC基元(primitives)、消息格式和库的抽象。他们为视频解码而开发的新VDA层(VDAv2),将视频解码交由GPU图形处理器来完成,而Mojo视频解码器是这个工作的一部分。但是整个过程存在一个追踪器漏洞。

长话短说,底层的视频播放有望改善chrome的视频回放体验。长时间以来,由于存在漏洞,在Linux上播放chrome/chromium视频一直被放在次要地位(或者至少对许多Linux桌面用户来说是这样的感觉)。不过还好,2019年这种情况将被改变。

4、播放器的设置

smplayer的“选项-首选项-常规-视频”中的“输出驱动”选择“vdpau”。如果是intel集成显卡,可以选择“vaapi”。

本文参考了archwiki的文献:https://wiki.archlinux.org/index.php/Hardware_video_acceleration_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!