硬件测评

帧数分析软件TrDrop的使用方法

前言

在硬件、游戏测评中,帧数一直是大家关注的重点。然而,由于系统环境的封闭性,游戏主机、手机等平台的帧数是非常难测量的。本篇教程将会向大家介绍一个万能的帧数测试方法,希望能帮到有需要的朋友。

思路

与pc平台不同,我们很难获取到游戏主机和移动设备的GPU渲染信息,也就无法直接获取实时帧数。但是,我们可以对平台的输出画面进行分析,并推算出画面的刷新率。打个比方,如果我们使用视频采集卡以固定60帧的格式采集游戏机的输出画面,那么我们可以得到一段帧数固定为60帧的游戏视频。但假如这个游戏实际在以30帧稳定运行,那么,如果我们逐帧播放视频,会发现画面每隔2帧才变动一次。理论上,通过软件逐帧对比分析,我们可以统计一秒内画面实际的变动次数(按照之前的例子,也就是统计视频每60帧画面实际变动了几次)。得到了每秒画面的实际变动次数,我们也就知道了当前游戏的实际帧数。
zelda01.jpg

第一步:采集视频

按照刚刚提到的思路,分析帧数的第一步就是采集游戏视频了。最稳妥的方法当然是使用采集卡。有朋友可能会问:为什么不能用游戏主机自带的视频录制功能?其实,想要根据视频分析帧数,对录制的视频有两个要求

  1. 视频录制帧数必须高于或等于游戏实际运行帧数;假如你用30帧录制,那一秒内可以被统计到的画面变化最多只有30次,也就无法准确分析运行帧数可能超过30帧的游戏了。
  2. 对视频的编码格式有特殊要求;由于需要逐帧对比分析,所以要求视频的每一帧都包含完整信息,也就不可以使用会对视频进行帧间压缩的视频编码了(测试可用的编码格式,包括但不限于ProRes、YV12raw、YUY2raw),常见的h264编码等是不可以使用的。

因此,我们需要指定的视频录制软件来录制视频。macOS可以直接使用QuickTime录制,把质量调到最高,就会采用ProRes编码
quicktime_maximum.png
Windows推荐使用potplayer进行录制[官方网站|直接下载]。potplayer可以按下快捷键alt+c打开录制设置,请前往该界面选择合适的编码格式
potplayer_encode.png
部分设备默认开启了HDCP数字保护,在使用视频采集卡录制前需要关闭该功能。如果视频采集卡出现只能采集声音无法采集画面的情况,请再次确认HDCP是否关闭。不清楚如何关闭的可以自行根据设备型号搜索关闭HDCP的方法
turn_off_hdcp.png

没有视频采集卡的解决方案
在没有视频采集卡的情况下,依旧有办法通过电脑采集游戏主机画面。以ps4为例,可以使用官方的PS4遥控操作软件[官方网站|直接下载],将PS4画面投影到电脑上。此时再用potplayer开启一个屏幕采集器去录制画面即可。但该方法会受到网络波动等影响,降低帧数分析结果准确性。

配置PS4遥控操作时请将帧数设置为高(60帧),并建议降低分辨率以减少网络波动对画面造成影响
ps4_remote_play_setup.png
打开potplayer,按下快捷键f5打开设置-采集器,建议选择"游戏采集",并记得将帧数设置为60帧
potplayer_screenshot.png
设置好后,右键-打开-采集器,选择PS4 remote play进程,就能采集游戏画面了

第二步:帧数分析

采集到游戏画面后,我们就可以通过软件来分析帧数了。本文用到了第三方开源的帧数分析软件TrDrop,点击此处可前往开发者网页。目前软件还处于开发的早期阶段,暂时只提供windows平台的安装程序,其他平台需要下载源代码手动编译。下载好TrDrop安装程序[官方网站|直接下载],打开后,按快捷键ctrl+F导入待分析的游戏视频。接下来,按ctrl+O打开设置;设置中可以调节画面容差(用来过滤录制时可能产生的噪点),允许输入0-255内的值,亲测7比较好用。
pixel_diff.png
最后,按快捷键ctrl+E导出分析结果。目前TrDrop只能导出图片序列,可以新建一个文件夹来存放这些图片序列。设置好后点击Export,等待软件分析即可。

第三步:后期处理

得到图片序列后,可以使用自己熟悉的视频编码软件将其转换为视频。开发者推荐使用ffmpeg[官方网站|直接下载],把存放图片序列的文件夹和ffmpeg可执行程序放在同一路径下,并在该路径下启动命令行面板(Windows可以按右键+shift开启powershell/cmd)。接下来,执行以下命令

ffmpeg.exe -i .\folder_name\exportsequence_%10d.jpg -framerate 60 -c:v libx264 -pix_fmt yuv420p result.mp4 

请将folder_name替换成你存放图片序列文件夹的名称;另外,如果你导出的是png序列而非jpg序列,请把.jpg扩展名改为.png。framerate请根据录制的游戏视频的帧数决定。以上命令会将编码好的视频输出到当前路径下,并命名为result.mp4。

下载链接

potplayer[官方网站|直接下载]
PS4 remote play[官方网站|直接下载]
TrDrop[官方网站|直接下载]
ffmpeg[官方网站|直接下载]

回复

This is just a placeholder img.