目前在Linux 系统下,NVIDIA 已经提供了官方的高清播放支持。由于高清视频文件压缩率比较高,所以在播放时,解码速度一定要快,才能够流畅的播放。所以对CPU 的要求比较高,CPU 占用率比较高。为了解决这个问题,目前的显卡厂家都在显卡核心GPU 中嵌入了部分视频解码格式的支持,来希望能够释放CPU ,来保证系统的顺利运行。只是要释放CPU ,实现GPU 解码高清视频,不仅需要GPU 的支持,还需要驱动和播放软件共同合作来将视频播放引导到GPU 上去,由GPU 解码。

在Windows 系统下,NVIDIA 的高清视频解码驱动早就提供了,而在Linux 系统下,是在其180 版本开始的驱动中才正式支持了高清视频解码支持。并向Mplayer 提供了补丁,要求Mplayer 的视频输出模式改为VDPAU (VDPAU 的全称是:Video Decode and Presentation API for Unix (Unix 系统视频解码和呈现API ))。同时提供了一些硬解码格式的视频解码器,来引导视频流通过GPU 来解码,以便释放CPU 。

VDPAU 支持硬件解码MPEG-1 、MPEG-2 、H.264 和VC-1 格式,也支持对已解码视频进行一些后期处理特殊效果,如反交错、降噪等。硬件上支持GeForce 8 以上显卡,系统支持Linux 、FreeBSD 和Solaris 。

现将Linux 下针对NVIDIA 显卡实现硬解码的方法介绍如下:

前提条件

  1. NVIDIA 显卡必须支持硬解码功能。如果该显卡没有硬解码功能,那么,再怎样修改都无法释放CPU 。所以无法提高系统性能;

  2. Linux 下必须安装NVIDIA 官方提供的180 及其以后的驱动版本;

  3. Mplayer 建议使用最新的版本,下载地址是http://www.mplayerhq.hu/design7/dload.html ,要不然你需要下载下面这个版本来完成高清播放的支持。具体的下载链接是ftp://ftp.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2

配置方法

  1. 在linux 系统上安装NVIDIA 的官方商业驱动。具体的下载地址是http://www.nvidia.cn/Download/index.aspx?lang=cn 。在这里根据自己使用的具体显卡来选择相应的驱动,下载安装。值得注意的是在安装NVIDIA 的显卡驱动时,首先要安装kernel 的开发包,即kernel-devel 包。同时要进入到字符模式下。进入字符的方法有很多,这里就介绍一种比较简单的方法:

打开终端——切换到root 用户。具体的切换命令是su—— 执行init 3 命令即可。

进入到字符模式后,执行sh NVIDIA-*.run 程序即可安装。

安装完成建议重启计算机。

如果是在Ubuntu 系统上,建议你使用系统——系统管理——硬件驱动来执行图形化安装商业驱动。这样比较方便。

  1. 编译并安装mplayer 程序。建议基于自己的NVIDIA 显卡和NVIDIA 官方驱动编译mplayer 。具体的编译方法如下:

./configure --enable-gui –language=zh_CN

make -jN // 根据你的CPU 内核数决定,双核的用-j3 吧!

make install

当然,configure 处,也可以根据自己的实际情况添加不同的参数。如果你不想基于NVIDIA 显卡编译,你在编译时,请记得加入参数—enable-vdpau 。来打开vdpau 功能。

这样安装以后的mplayer 在/usr/locale 目录下。跟系统正常目录有所出入。如果你为了使其能够安装到正常目录下,你可以使用下面的configure 命令:

./configure --enable-gui --language=zh_CN –prefix=/usr/ --bindir=/usr/bin/ --datadir=/usr/share/mplayer –mandir=/usr/share/man –confdir=/etm/mplayer –libdir=/usr/lib/ --codecsdir=/usr/lib/codecs

这样就能够保证安装到了正常目录下。

  1. 配置mplayer 。 要想用nvidia 显卡的硬解码功能,在用mplayer 播放时,需要加入以下参数:

-vo vdpau -vc ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau

其中-vo vdpau 是指明以vdpau 模式输出。而参数-vc ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau 是指明优先使用这几个视频解码器。mplayer 在选择视频解码器时是比较智能的。一起添加后,只是让mplayer 在这几个视频解码器中优先选择,如果没有适合的,再去解码器库中寻找。不会起到限定解码器的作用。

另外,mplayer 能够自动列出当前能够支持到的视频解码器以及视频输出格式。具体的命令是:

mplayer -vo help // 列出能够使用的视频输出模式

mplayer -vc help // 列出能够使用的视频解码器

mplayer -ao help // 列出能够使用的音频输出模式

mplayer -ac help // 列出能够使用的音频解码器

  1. gmplayer 实现高清视频解码输出的方法。gmplayer 只是mplayer 的图形输出模式。其更方便用户使用和设置而已。没有其他特殊之处。但是针对mplayer 的这几个参数在gmplayer 中无法使用。若要在gmplayer 中使用高清视频解码输出,需要修改mplayer 相应的配置文件。

可以修改的文件有两个。一个是放在/etc/mplayer 目录下的mplayer.conf 文件。另外一个就是放在了用户主目录下的.mplayer/config 文件。这两个文件中修改后的效果是一样的。只是对用户权限的限定不一样。在/etc/mplayer 目录下修改后,改系统中的所有用户都可以使用高清视频播放了。而在用户主目录下的.mplayer 目录中修改了以后,只有该用户登录后在可以使用高清视频播放。所以用户在设置时要根据自己的具体情况来选择相应文件进行修改。

测试方法

测试高清视频播放的方法很多,但是最直接的方法就是下载高清电影,或者高清小片段,直接播放。一般不使用高清视频解码的话,播放高清电影,CPU 的占用率一般在99% 左右,而使用了高清视频解码以后,CPU 的占用率在8% 以下。

参考文献:

mplayer播放高清(nvidia vdpau):http://bbs.fedora-zh.org/showthread.php?t=1128

NVIDIA 180版Linux驱动视频解码加速实测 : http://blog.chinaunix.net/u1/39544/showart_1418368.html

我的优化PC:在Linux下进行高清VDPAU解码测试:http://blog.zol.com.cn/868/article_867075.html

使用vdpau mplayer作为后端的smplayer的设置方法 : http://forum.ubuntu.org.cn/viewtopic.php?f=74&t=177518


Linux下用nvidia显卡实现硬解码的方法相关推荐

  1. Deepin/Ubuntu debian系的Linux下更新nvidia显卡驱动(初次安装也可以选择该方案)

    最近想着更新到最新的cuda11,不想重装系统,就约摸着能不能更新一下显卡驱动,当然linux系统的显卡驱动不像windows那样,点点点就行了,需要做一些配置,现在将更新过程记录如下. Deepin ...

  2. Linux下的NVIDIA显卡驱动失踪

    文章目录 NVIDIA显卡驱动失踪 环境 问题解决 故障排除 NVIDIA显卡驱动失踪 环境 Ubuntu 18.04 问题解决 这个问题可能是由于安装过程中的错误或者是系统更新导致的,你可以先尝试下 ...

  3. 01. Ubuntu下安装nvidia显卡驱动(安装方式简单)

    文章目录 第一步 获取显卡型号 第二步 查看GTX970M显卡驱动 第三步 查询支持GTX970M显卡的显卡驱动的其他驱动版本 第四步 安装 第五步 测试nvidia driver是否安装成功 环境 ...

  4. linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...

    再试一试这个方法:[转自]http://www.myexception.cn/image/505352.html VirtualBox3.1.2安装Fedora12后无法启动图形界面问题 Virtua ...

  5. linux nvidia驱动安装rpm,Fedora 下安装NVIDIA显卡驱动

    rpmfusion安装法: 相对于ATi,在Linux下安装NVIDIA就简单得多.只需要一个命令即可完成驱动的安装: 首先要确保你已经添加rpmfusion的源,如果你不能确认你可以安装输入此命令添 ...

  6. Linux下查看GPU显卡信息

    Linux下查看GPU显卡信息的命令: ubuntu-drivers devices nvidia-smi lspci | grep -i nvidia lspci lspci | grep -i v ...

  7. Ubuntu18.04下安装NVIDIA显卡驱动、docker、nvidia-docker;容器中编译安装opencv-4.4.0与darknet-yolov4并完成测试;容器封装镜像转移。2022

    记录一下第一次在CSDN发博客,欢迎大家光临~ 文章目录 前言 一.宿主机配置 1.安装Ubunntu18.04 64位系统 2.为宿主机系统更换国内软件源Ubuntu 官方源服务器在欧洲,国内访问很 ...

  8. linux下的nvidia驱动卸载升级

    linux下的nvidia驱动卸载升级 首先去nvidia官网下载对应的显卡驱动,此处以tesla V100为例 nvidia396.26卸载 #sudo nvidia-uninstall 安装nvi ...

  9. Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换

    因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动.Cuda.Cudnn.并进行CUDA版本切换 成功安装完成了,写个记录. 1. 安装Nvid ...

最新文章

  1. 如何用windows系统访问Linux系统的web网站
  2. 利用Python对文件进行批量重命名——以图片文件为例
  3. 带你掌握不同平台下,探索JDK源码所需的native方法
  4. 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
  5. 0-1 背包实际应用
  6. 解决 DBMS_AW_EXP: BIN$*****==$0 not AW$
  7. Google 中国招聘啦
  8. 基础教程——python函数
  9. java redis3.0_Java + Redis(第三章)
  10. ADFS令牌解密,令牌签名证书到期处理
  11. linux 内核 addr2line,内核调试 arm-none-linux-gnueabi-addr2line 工具使用
  12. 计算机机房安全消防管理制度,机房消防安全管理制度
  13. css过渡、动画3D环绕相册
  14. Python反爬机制-验证码
  15. Sumatra PDF阅读器之 Sumatra PDF 高级设置
  16. Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
  17. 改革人工智能时代的劳动技能教育
  18. js实现彩票机选效果
  19. 数学建模算法 一 简述(3)规划模型-整数规划
  20. Oracle VM VirtualBox设置共享文件夹

热门文章

  1. 12-06-微信小程序手写知识点
  2. Linux命令(39):cal
  3. 如何打开Hierarchy Viewer ?
  4. 华为OD机试题java-【招聘】
  5. 阿里云服务器可以干嘛?十大用途使用场景集锦
  6. 基于水循环算法的开关磁阻电机性能优化
  7. 一个可以轻松上手绘画的小程序
  8. 免费沙箱软件模拟支付_沙箱模拟公众号支付的问题
  9. python实现网络测速
  10. 华为设备配置3A之telent登陆