psvsd 发表于 2021-1-10 15:58

帧数测试软件trdrop入门,你也能成为数毛婆罗门

本帖最后由 psvsd 于 2021-1-10 15:58 编辑

trdrop - 原始视频分析软件
https://github.com/cirquit/trdrop

此软件可以对视频进行分析,辨别出每一帧是否与上一帧相同,从而实现测试主机游戏帧数的方法 —— 事实上,Digital Foundry也是这么做的。
但此软件并不能分析出游戏内的3D部分的实际分辨率,因此只能用于帧数数毛。

必要准备
[*]一台游戏主机
[*]一张采集卡,最好支持未经压缩的视频录制
[*]一台电脑
[*]trdrop,前往github获取最新版本的软件:https://github.com/cirquit/trdrop/releases/

不要使用游戏主机自带的录制功能,一般来说其录制出来的视频不能体现实际游玩过程中的画面水平。
开始数毛
1. 录制视频
使用你的采集卡录制一段游戏视频,若你的采集卡支持(或声称支持)无损(RAW)的视频录制,请使用此方法录制。
如下是使用Potplayer录制的一个例子。


2. 导入视频至trdrop
打开你的trdrop
点击File -> Add files 会弹出对话框,在此处你可添加至多三个视频以便同时分析
此处以添加刚才录制好的mhr视频为例,之后的软件界面应该如下图所示


若要移除某段视频,你需要再次点击 File -> Add files,然后点击右边的×按钮

3. 调节trdrop参数
虽然添加了视频,但若不进行任何设置便直接进行测试,就会闹出lga测mhr测出60帧的笑话
点击Tools -> Options 打开设置菜单



在GENERAL设置项中,一般来说调节 Enable framerate **ysis 和 Enable frametime **ysis 后面的区间至你的采集卡录制出来的视频帧率即可(一般来说是60)



FPS 设置项中,三个框代表每个视频(如果你添加了多于一个视频)的设置项
Framerate plot color 和 Framerate text 都是“个性化”设置项(图表颜色/左上角FPS计数器显示),随意设置即可

Pixel Difference 是数毛中的重点,需要根据你的采集卡性能来调节此阈值。
此选项代表每一帧的图像有多大区别时判定为不同帧。由于采集卡、视频压缩算法、码率等区别,游戏中完全静止的一帧实际上也可能有色块的细小区别,因此需要通过调节此阈值来减少非游戏因素造成的错误判断。

如果支持无损录制,其他人给出的阈值是5~7。
如果只支持有损录制,你可能需要按照 3.1 的说明手动数出帧数,并调节阈值使测试结果与你手动数出的帧数数据一致。
作为参考,我使用的圆刚GC311的阈值为 72 左右。



Tear 设置项中可设置画面撕裂判断阈值,此处超出我的知识范围,因此我使用的是默认设置。

3.1 手动数毛(可选)
如果你使用的采集卡不支持无损录制,你可能需要进行本节的操作来手动测试出适合你采集卡的 Pixel Difference 阈值。
首先打开一个支持按帧步进的播放器,打开你刚才录制的视频(建议此视频的游戏画面是不停移动的)

接下来你只要不停按帧步进,数出每一秒有多少帧,调整 Pixel Difference,使程序的分析结果与你手动数出的帧率一致即可。
建议以视频开始5秒后为起点数帧,因为视频的前两三秒没有足够数据让程序分析出正确的帧率。

这一步骤个人建议数大约五秒即可。

4. 开始分析
点击 File -> Export 打开导出对话框
选择导出文件夹、文件名前缀(程序会导出文件名为 前缀_0000数字 的图像序列)、导出分辨率即可开始导出
导出过程中会默认开启实时预览,可以在此监视实时的帧率


由于导出结果是图像序列,如果需要后期用视频编辑软件覆盖到视频上,建议导出后缀选择 *.png,并打开 Export as overlay 的选项

5. 合并为视频
如果要把导出来的图像转换为视频,已经有工具的婆罗门请略过这一节,没有工具的请去找工具(不)

由于楼主是 code monkey,这里提供一种使用 ffmpeg 命令行合并的方法
具体使用请搜索其它教程,此处只给出命令


[*]录制视频帧率60帧,文件名mhr_recorded.avi,导出前缀名为mhr的图像序列合并为文件名output.mp4的视频
[*]ffmpeg -framerate 60 -i mhr_%10d.jpg -i mhr_recorded.avi -c:v libx264 -c:a copy -map 0:v -map 1:a -vf format=yuv420p output.mp4


[*]将上一步骤中的mp4视频,选取00:00:28秒开始,共5秒,并转为每秒10帧的gif
[*]ffmpeg -i output.mp4 -t 5 -ss 00:00:28 -r 10 output.gif


6. 结果



Happy Analysing!


920619lqy 发表于 2021-1-10 16:19

大数毛时代…

不努 发表于 2021-1-10 16:58

想知道MSI小飞机或是Steam内置的FPS计数是怎么做到的

-- 傲娇地来自 Stage1未知客户端

屑猫猫 发表于 2021-1-10 17:05

又要数毛

-- 来自 能看大图的 Stage1官方 Android客户端

卿卿雅儿 发表于 2021-1-10 17:06

不努 发表于 2021-1-10 16:58
想知道MSI小飞机或是Steam内置的FPS计数是怎么做到的

-- 傲娇地来自 Stage1未知客户端 ...

显卡驱动的功能吧?

不努 发表于 2021-1-10 17:30

卿卿雅儿 发表于 2021-1-10 17:06
显卡驱动的功能吧?

不清楚Digital Foundary有没有主机开发机,能不能直接读取显卡数据,但PC游戏我印象中他们数毛也是分析视频文件,为啥有更直接的数据不用呢,不懂

peipei6955 发表于 2021-1-10 17:42

那么,有没有输入延迟测试软件呢?要能测试每个游戏的

aceralon 发表于 2021-1-10 21:25

不努 发表于 2021-1-10 17:30
不清楚Digital Foundary有没有主机开发机,能不能直接读取显卡数据,但PC游戏我印象中他们数毛也是分析视 ...

因为这样有个图可以看,显得高级点,还可以顺便分析下分辨率,分辨率这个真的要找直线一帧帧数

—— 来自 OPPO PCLM10, Android 11上的 S1Next-鹅版 v2.4.4
页: [1]
查看完整版本: 帧数测试软件trdrop入门,你也能成为数毛婆罗门