如何评估显卡的硬件解码能力

拿到一张显卡之后,如何评估显卡的硬件解码能力,下面提供一种可以操作的方法供参考。
这里使用的操作系统是linux系统。
linux系统下面,通常用的硬件解码接口有VDPAU,VAAPI, OPENMAX。我们通过调用vaapi接口,来进行硬件解码能力判断。
使用的方法,就是通过调用播放器硬件解码显示视频,然后根据是否音视频同步,来进行解码能力的判断。如果音视频同步,说明解码能力是能够解码当前视频的,如果音视频不同步,说明解码能力不足。

软件环境准备

软件环境,需要如下2个:

  1. mpv播放器
  2. vaapi显卡驱动
    这里,我们打算使用mpv播放器,来播放视频。所以,需要先安装mpv播放器。
sudo apt install mpv

可以通过上述命令,在deb系列操作系统上安装mpv播放器。或者直接找操作系统厂商,让他们提供mpv安装包。
然后,显卡vaapi驱动,一般由显卡厂商来提供。

测试数据准备

测试数据,我们这里以h264为例,先下载一个h264的 3840x2160 60fps视频。下载地址如下:
https://download.blender.org/demo/movies/BBB/bbb_sunflower_2160p_60fps_normal.mp4.zip
下载之后,保存到本地。

进行测试

mpv --hwdec=vaapi --vo=vaapi ~/bbb_sunflower_2160p_60fps_normal.mp4 --window-scale=0.1

输入上述命令,播放视频。命令解析如下:

  1. mpv 是播放器本身的名字。
  2. –hwdec=vaapi,表示使用硬件解码接口为vaapi
  3. –vo=vaapi,表示使用视频输出接口为vaapi
  4. ~/bbb_sunflower_2160p_60fps_normal.mp4 为视频路径,如果你的视频放在另外一个路径,需要改成自己的本地文件路径。
  5. –window-scale=0.1,是把窗口缩小为正常的0.1倍。之所以把窗口缩小,是因为我们这里测试的是解码能力,只要满足解码需求就可以了。即使把窗口缩小,解码还是要解码 3840x2160 分辨率的。

解码能力判断

上述命令正常播放视频之后,我们可以通过终端的打印来判断。比如我们这里,最末尾的打印如下:
AV: 00:01:39 / 00:10:34 (15%) A-V: 0.000 Dropped: 7 Cache: 158s/150MB
下面分别讲解这里的内容:
AV: 00:01:39 / 00:10:34 (15%), 这里,说明视频里面有音频和视频, 当前播放到00:01:39,也就是1分30秒。视频总长00:10:34,也就是10分钟34秒,当前播放进度为15%。
A-V: 0.000, A-V表示的是音视频是否同步,A-V 为0,说明音视频是同步的, 如果A-V 值大于0,说明音频在前面,视频在后面,视频跟音频的差距, 假设这个值为1.00,说明音频超出视频1秒钟。这就是我们判断解码能力的依据。
Dropped: 7 , 表示丢了7帧。一般在视频播放开始处,丢几帧,后面不再丢,说明是能解码过来的,可能是初始化时间长,导致丢了几帧。
Cache: 158s/150MB, 这个是说播放器缓存了多少,这个不重要。

我们这里,播放了1路4k(3840x2160) 60fps视频,A-V:0.000,说明解码能力是超出了 3840x2160 60fps的,那假如我想测试显卡最高能解码3840x2160 视频,能达到多少帧,怎么做呢?可以通过播放多路来实现。
比如我们再开1路,

mpv --hwdec=vaapi --vo=vaapi ~/bbb_sunflower_2160p_60fps_normal.mp4 --window-scale=0.1

然后我们一直加,假设播放了 4路,A-V 还是0, 然后播放5路之后,A-V 大于0,然后持续增加,那么说明这个显卡的解码能力就是 4路4k 60fps,也就是解码能力是 4 * 60fps = 240fps,也就是解码能力是 4k 240fps能力。播放5路视频之后,开始音视频不同步,说明这个显卡,解码 5 x 60fps = 300fps, 解码 4k 300fps是达不到的,解码能力位于 4k 240~300fps 之间。按照保守估计,就是4k 240fps的解码能力。

另外,如果视频播放一段时间,就推出了,可以在后面加参数 --loop,来保证视频循环播放。具体命令如下:

mpv --hwdec=vaapi --vo=vaapi ~/bbb_sunflower_2160p_60fps_normal.mp4 --window-scale=0.1 --loop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值