NDI 的 60000/1001 能改写成 60 吗:怎样保留接收帧率分数
60000/1001不等于60,接收描述中的分子和分母应成对保留。若序列化时先四舍五入成整数,再用它生成时间表,长序列就会积累确定的算术差异。不过这个差异只是描述解释造成的模型结果,不能直接当作现场画面漂移测量。
先固定输入与适用条件
本题只处理NDI视频帧描述,不修改Windows刷新率或显卡输出。输入是帧率分子、分母与累计帧数,约定从首帧开始计数,并用一万个帧间隔比较经过时间。应先拒绝零分母和非正帧率,再决定日志显示小数位数;保留原始整数对比保存三位小数更重要。
本篇按NDI官方滚动SDK文档解释视频v2或音频v3帧描述。文档核对日期为2026-10-24;这不是本地已安装NDI运行库的版本声明,设备与第三方软件需另录版本。
按字段与边界执行
-
从同一视频帧记录frame_rate_N和frame_rate_D,连同源名称、分辨率及采集日期一起保存。界面显示59.94只能作为展示值,不据此重建精确分数。
-
用有理数表示帧周期,经过时间等于间隔数乘分母再除分子。若记录的是帧总数而非间隔数,要先澄清首尾相隔的数量,避免额外差一帧。
-
分别计算60000/1001和60/1的累计时间,将差值标成模型误差。为59.94这个截断小数另开一列,观察截断本身也会引入差异。
-
把分子分母完整传给后续时间线或录制接口。若目标接口只接受固定枚举,应明确记录选中的模式及转换策略,不能静默改成邻近整数。
用具体样例核对结果
附件一万个间隔按60000/1001计算为166.833333秒,按60为166.666667秒,相差六分之一秒。程序使用Python Fraction保留精确值,断言差值确为1/6,随后才输出便于阅读的小数。没有拍摄任何屏幕,也未测网络抖动,因此表中的差值不能命名为NDI传输延迟。
通过条件是输入分数经写出再读取后仍保持原值,帧周期推导可逆,累计结果与精确分数一致。如果源运行中改了帧率,必须把时间线分段,不能拿首帧参数覆盖全段。对于源本来就不稳定的情况,还需逐帧到达时间与发送节奏证据;仅靠帧描述无法证明每个真实帧都按理想周期送达。
下载与复现
analyze.py、input.json、result.json。
结果文件同时保存精确分数与小数秒,适合排查JSON配置或数据库字段把分母丢掉的问题。现场证据仍应另附接收日志及输出显示模式,避免将这一篇的SDK字段核对与上一批刷新率验收混为一谈。
把输入与脚本保存到同一个本地目录后执行 python analyze.py,脚本只读取输入、计算并重写同目录的结果文件。先保留原始附件副本,再将自己的脱敏输入另存为新版本,记录输入摘要与执行日期;不要把合成字段覆盖成看似真实的现场日志。
已用 Python 3.12.4 实际运行附件算法并检查断言。结果来自同目录合成输入;没有接入真实NDI源、控制器、灯具、接收卡或LED屏,不能据此填写现场验收通过。
对接下一步与一级来源
基础背景可看同一台电脑 60Hz 正常、59.94Hz 接缝跳动,怎样记录刷新率。相关流程收在多媒体播放专题;需要项目对接时,带上本文输入及结果向SoftPlayer核对实际能力。
一级来源核对日期:2026-10-24。原始协议规则、本文原创运算和目标系统行为应分别留证;附件计算正确,不等于设备已经按该参数工作。
相关阅读
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。