来点硬的

虽然现在的 CPU 性能足够软解码高清视频,但是大家都知道,在很多方面,硬一点总是要比软塌塌的强。那么我就说说视频解码方面的 西地那非 。当然,下面所有的内容都是以 nvidia 显卡为基础的。

VDPAU

VDPAU 是 nvidia 开发的用于 nv 显卡硬解码的 API ,现在的 mplayer 已经可以很好的支持这一技术

首先,把该装的都装上,什么 mplayer 、nv闭源驱动、ffmpeg 什么的都装上

然后
$ mplayer -vo help | grep vdpau
看看是不是输出
vdpau VDPAU with X11
如果是,请继续,如果不是,自查哪里没搞对

使用下面参数播放一个需要硬解码的视频
$ mplayer -vc ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau, -vo vdpau
如果看到下面信息里使用了任何 ffh264vdpau, ffmpeg12vdpau, ffwmv3vdpau, ffvc1vdpau 之一的解码器,那么就硬解成功了

如果需要每次播放都尝试硬解码,把这几个参数写到配置文件里(系统级或用户级自选)
vo=vdpau,xv
vc=ffh264vdpau,ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau

使用 VDPAU 进行高清解码, CPU 占用率可以保持在 20% 以内,并且画面没有错误

VA API

VA API 是一个 unix 上兼具 API 和库作用的图像加速技术,这个技术最初是由 Intel 为了旗下的 GMA 系列图形加速芯片设计的,但是其他的硬件也可以自由的将这个 API 用于硬件视频解码。

如果希望使用这个技术进行硬件解码,首先要使用下面这个 PPA 安装所需的组件,包括 mplayer 、 VLC 、vdpau-video 等,不同品牌的显卡需要不同的包,比如 nv 显卡需要与 vdpau 相关的包,而 ATI 的显卡需要 XvBA 相关的包, Intel 或许也有相关的包,具体是哪些我也不知道。当然显卡驱动是必须要安装的。
$ sudo add-apt-repository ppa:nvidia-vdpau/cutting-edge-multimedia

对于  mplayer ,使用下面的参数进行播放,当然参数同样可以写到配置文件里
mplayer -vo vaapi -va vaapi

对于 VLC ,直接勾选视频选项里的硬件加速即可,不过目前即便是启用了硬件加速, CPU 占用率仍然与软解妈一样高,不具有实际意义。

目前这个技术通过 vdpau 后端运行的效率比直接 vdpau 略微低一点,不过 CPU 占用率也能基本保持在 20% 左右,至于 intel 显卡直接 vaapi ,或者 ATI 显卡通过 XvBA 后端运行的效率,我就没有办法测试了

6 thoughts on “来点硬的

    1. Wheat0r Post author

      smplayer 会在点任何按钮之后刷新一次界面,而且还有位移,不知道是不是我这里的问题,总之不喜欢。 VLC 的硬解还没尝试出来。 mplayer 上 intel 做 vaapi 应该也是 驱动 + -vo vaapi -va vaapi 吧,没有相应的平台测试,当然必须 mplayer 要支持 vaapi 。
      P.S. 第一次回复需要我后台通过一下

      Reply

Leave a Reply

Your email address will not be published.