C++ Qt录像机
我正在尝试用Qt创建一个录像机。到目前为止,我所做的是在屏幕上截取一个矩形并保存它。最后,我使用ffmpeg从图像中获取视频文件 我将计时器的信号C++ Qt录像机,c++,qt,video,ffmpeg,C++,Qt,Video,Ffmpeg,我正在尝试用Qt创建一个录像机。到目前为止,我所做的是在屏幕上截取一个矩形并保存它。最后,我使用ffmpeg从图像中获取视频文件 我将计时器的信号timeout()连接到我的自定义插槽,该插槽拍摄快照并将其保存到我的tmp文件夹中。计时器的间隔为1000/30。应该是每秒30次。但是1000/30比33毫秒多一点,所以我不能真正获得30 fps。还有一点 我用录像机录制了一段youtube视频,一切都很顺利,但根据时间间隔的不同,速度会有点快/慢 所以我的问题基本上是我如何得到真正的30/40/
timeout()
连接到我的自定义插槽,该插槽拍摄快照并将其保存到我的tmp文件夹中。计时器的间隔为1000/30。应该是每秒30次。但是1000/30比33毫秒多一点,所以我不能真正获得30 fps。还有一点
我用录像机录制了一段youtube视频,一切都很顺利,但根据时间间隔的不同,速度会有点快/慢
所以我的问题基本上是我如何得到真正的30/40/50/。。。fps
~33.33333333
,但不要写入该值-写入(double)1000/30
)。调用此值next\u时间戳
current\u timestamp
next\u timestamp-current\u timestamp
。再次将slot参数设置为快照插槽。请注意,如果睡眠时间是使用多个线程(例如一个用于复制,一个用于分析),则可能会获得更好的性能。这也取决于你的处理器。有几件事需要注意。Qt中的第一个屏幕捕获非常缓慢且不稳定。因此,可能很难获得您想要的准确帧速率。我建议您使用可变帧速率,并为每一帧设置时间戳。因此,即使您错过了目标帧速率,视频仍能完美播放。