Linux下用nvidia显卡实现硬解码的方法

本文介绍了如何在Linux系统下利用NVIDIA显卡实现高清视频的硬件解码,包括驱动安装、mplayer配置及测试方法等内容。

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

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

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

现将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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值