Closed wanmich closed 4 years ago
在html报告中,Stages和Others下的同一帧对应的时间戳不相同(如图1),最终计算出的区间耗时也会不同。一般地,手工测试会基于Stages下的数据计算耗时,自动化测试时会基于Other下的数据计算耗时。
还发现Stages中第1帧的时间戳为负的情况
用 ffmpeg 刷一下帧率一般就不会发生这种情况。如果还有的话我再看看,这种之前似乎偶现过但是没怎么关注。
关于用ffmpeg刷帧率,有些疑问:
对于软件录制的视频,如何确定帧率? 载入视频时,VideoObject()默认是使用视频原始帧率吗?在不指定fps值时得到的报告中,用总帧数/总时间长(Stages最底部的最后一帧和对应时间戳)得到的帧率与录制视频时指定的帧率不一样? 比如用ADV Screen Recorder录制时指定帧率是60fps,但基于报告Stages页数据算出的帧率是另一个值:(基于这个帧率算出的耗时 与 基于时间戳算出的耗时 也不相同) (也许应该用一款视频播放软件查一下视频帧率,再把得到帧率传入VideoObject()?)
用ffmpeg刷帧率后,是否影响引入误差? 如视频的帧率是20,按30/60去刷,视频还能否还原录制时的各阶段的耗时?
对于软件录制的视频,如何确定帧率?
软件录制会得到不稳定的帧率。https://www.infoq.cn/article/KJaBBAaXpWER0rbwtRvq
视频还能否还原录制时的各阶段的耗时?
能的
others属于历史遗留问题了,现在我们不看这个,以Stages为准。自动化一般建议自行处理数据 ClassifierResult,这个也是准的。后面会考虑将others修改下,以免误导;
有些疑惑,到目前为止已经处理过几十个视频了,发现:
Others下的时间戳与ClassifierResult是一致的
Stages下的时间戳与ClassifierResult不一致(正如图1与图2)。
https://www.infoq.cn/article/KJaBBAaXpWER0rbwtRvq 对于 fps 不稳定的问题,有个前提是,虽然 fps 不稳定,但每一帧的时间戳是准确的。那么,我们可以利用 ffmpeg 对这些视频进行补帧,使整个视频的 fps 维持在一个固定值。经过这种方法处理之后,opencv 就能够正确地处理视频的时间。
Others下的时间戳与ClassifierResult是一致的
是不是,理论上讲,刷帧后,视频fps固定了,数帧得来的耗时等于时间戳耗时?
是
在 others tab 中添加了 warning 与 该 issue 的链接; 后续有空时去除无效部分,close。
在html报告中,Stages和Others下的同一帧对应的时间戳不相同(如图1),最终计算出的区间耗时也会不同。一般地,手工测试会基于Stages下的数据计算耗时,自动化测试时会基于Other下的数据计算耗时。
在实验中,还发现Stages中第1帧的时间戳为负的情况,假设是时间偏移量,用下一个稳定阶段的第一帧时间戳减去偏移量得到的值与Others下对应的时间戳一致(如图2)。但稳定阶段的最后一帧时间戳两边是一致的,不能以同样的方式相减。推断应该是bug吧
示例截图: (图1)
(图2)