Linux下用nvidia显卡实现硬解码的方法
目前在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 显卡实现硬解码的方法介绍如下:
前提条件
NVIDIA 显卡必须支持硬解码功能。如果该显卡没有硬解码功能,那么,再怎样修改都无法释放CPU 。所以无法提高系统性能;
Linux 下必须安装NVIDIA 官方提供的180 及其以后的驱动版本;
Mplayer 建议使用最新的版本,下载地址是http://www.mplayerhq.hu/design7/dload.html ,要不然你需要下载下面这个版本来完成高清播放的支持。具体的下载链接是ftp://ftp.mplayerhq.hu/MPlayer/releases/mplayer-export-snapshot.tar.bz2
配置方法
在linux 系统上安装NVIDIA 的官方商业驱动。具体的下载地址是http://www.nvidia.cn/Download/index.aspx?lang=cn 。在这里根据自己使用的具体显卡来选择相应的驱动,下载安装。值得注意的是在安装NVIDIA 的显卡驱动时,首先要安装kernel 的开发包,即kernel-devel 包。同时要进入到字符模式下。进入字符的方法有很多,这里就介绍一种比较简单的方法:
打开终端——切换到root 用户。具体的切换命令是su—— 执行init 3 命令即可。
进入到字符模式后,执行sh NVIDIA-*.run 程序即可安装。
安装完成建议重启计算机。
如果是在Ubuntu 系统上,建议你使用系统——系统管理——硬件驱动来执行图形化安装商业驱动。这样比较方便。
编译并安装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
这样就能够保证安装到了正常目录下。
配置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 // 列出能够使用的音频解码器
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显卡实现硬解码的方法相关推荐
- Deepin/Ubuntu debian系的Linux下更新nvidia显卡驱动(初次安装也可以选择该方案)
最近想着更新到最新的cuda11,不想重装系统,就约摸着能不能更新一下显卡驱动,当然linux系统的显卡驱动不像windows那样,点点点就行了,需要做一些配置,现在将更新过程记录如下. Deepin ...
- Linux下的NVIDIA显卡驱动失踪
文章目录 NVIDIA显卡驱动失踪 环境 问题解决 故障排除 NVIDIA显卡驱动失踪 环境 Ubuntu 18.04 问题解决 这个问题可能是由于安装过程中的错误或者是系统更新导致的,你可以先尝试下 ...
- 01. Ubuntu下安装nvidia显卡驱动(安装方式简单)
文章目录 第一步 获取显卡型号 第二步 查看GTX970M显卡驱动 第三步 查询支持GTX970M显卡的显卡驱动的其他驱动版本 第四步 安装 第五步 测试nvidia driver是否安装成功 环境 ...
- linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...
再试一试这个方法:[转自]http://www.myexception.cn/image/505352.html VirtualBox3.1.2安装Fedora12后无法启动图形界面问题 Virtua ...
- linux nvidia驱动安装rpm,Fedora 下安装NVIDIA显卡驱动
rpmfusion安装法: 相对于ATi,在Linux下安装NVIDIA就简单得多.只需要一个命令即可完成驱动的安装: 首先要确保你已经添加rpmfusion的源,如果你不能确认你可以安装输入此命令添 ...
- Linux下查看GPU显卡信息
Linux下查看GPU显卡信息的命令: ubuntu-drivers devices nvidia-smi lspci | grep -i nvidia lspci lspci | grep -i v ...
- Ubuntu18.04下安装NVIDIA显卡驱动、docker、nvidia-docker;容器中编译安装opencv-4.4.0与darknet-yolov4并完成测试;容器封装镜像转移。2022
记录一下第一次在CSDN发博客,欢迎大家光临~ 文章目录 前言 一.宿主机配置 1.安装Ubunntu18.04 64位系统 2.为宿主机系统更换国内软件源Ubuntu 官方源服务器在欧洲,国内访问很 ...
- linux下的nvidia驱动卸载升级
linux下的nvidia驱动卸载升级 首先去nvidia官网下载对应的显卡驱动,此处以tesla V100为例 nvidia396.26卸载 #sudo nvidia-uninstall 安装nvi ...
- Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动、CUDA、cuDNN, 并可进行CUDA版本切换
因为做深度学习的研究项目,为全新机器在Ubuntu 20.04 LTS 系统下 安装Nvidia 显卡驱动.Cuda.Cudnn.并进行CUDA版本切换 成功安装完成了,写个记录. 1. 安装Nvid ...
最新文章
- 如何用windows系统访问Linux系统的web网站
- 利用Python对文件进行批量重命名——以图片文件为例
- 带你掌握不同平台下,探索JDK源码所需的native方法
- 敏捷开发般若敏捷系列之八:敏捷的未来会怎样?
- 0-1 背包实际应用
- 解决 DBMS_AW_EXP: BIN$*****==$0 not AW$
- Google 中国招聘啦
- 基础教程——python函数
- java redis3.0_Java + Redis(第三章)
- ADFS令牌解密,令牌签名证书到期处理
- linux 内核 addr2line,内核调试 arm-none-linux-gnueabi-addr2line 工具使用
- 计算机机房安全消防管理制度,机房消防安全管理制度
- css过渡、动画3D环绕相册
- Python反爬机制-验证码
- Sumatra PDF阅读器之 Sumatra PDF 高级设置
- Python 练习实例100-39,有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。
- 改革人工智能时代的劳动技能教育
- js实现彩票机选效果
- 数学建模算法 一 简述(3)规划模型-整数规划
- Oracle VM VirtualBox设置共享文件夹