找回密码
 立即注册
搜索
查看: 1163|回复: 7

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

[复制链接]
     
发表于 2021-1-10 15:58 | 显示全部楼层 |阅读模式
本帖最后由 psvsd 于 2021-1-10 15:58 编辑

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

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

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


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


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

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



在GENERAL设置项中,一般来说调节 Enable framerate **ysisEnable 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!


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 4战斗力 +5 收起 理由
朝日Asahi + 1 好评加鹅
AW4WA + 2 好评加鹅
yuzhaoping + 1 欢乐多
BigLittle1999 + 1 好评加鹅

查看全部评分

回复

使用道具 举报

发表于 2021-1-10 16:19 来自手机 | 显示全部楼层
大数毛时代…
回复

使用道具 举报

     
发表于 2021-1-10 16:58 | 显示全部楼层
想知道MSI小飞机或是Steam内置的FPS计数是怎么做到的

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

使用道具 举报

     
发表于 2021-1-10 17:05 | 显示全部楼层
回复

使用道具 举报

     
发表于 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游戏我印象中他们数毛也是分析视频文件,为啥有更直接的数据不用呢,不懂
回复

使用道具 举报

     
发表于 2021-1-10 17:42 | 显示全部楼层
那么,有没有输入延迟测试软件呢?要能测试每个游戏的
回复

使用道具 举报

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

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

—— 来自 OPPO PCLM10, Android 11上的 S1Next-鹅版 v2.4.4
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2024-9-27 07:24 , Processed in 0.071631 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表