查看完整版本: [-- 视频流界面停止刷新的问题 --]

QTCN开发网 -> Qt基础编程 -> 视频流界面停止刷新的问题 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

hjh2008 2022-05-31 17:41

视频流界面停止刷新的问题

        我们用Qt开发了一款类似视频监控的软件,不过我们接的不是监控摄像头,而是工业摄像头,走的是千兆网接口,每个摄像头传输的视频流最大帧率是30帧。我们用子线程来接收摄像头的数据,每接收完一帧数据后,用信号-槽的方式通知GUI主线程调用Widget的update函数绘制帧图像。
        目前遇到的这样的问题:
        当只接1个摄像头的时候,软件能长时间正常显示摄像头的视频流图像;但当我们同时接4个摄像头时,正常显示几分钟后,四个摄像头的画面就不刷新了,此时如果我们对软件窗口进行最小化后再最大化操作(人为强制刷新)后4个摄像头又可以正常刷新了。
        请问这是什么问题?要怎么解决? 感谢!

liudianwu 2022-05-31 19:33
用句柄或者yuv自己绘制,而不是painter绘制image,你这个现象较冻结假死

hjh2008 2022-05-31 21:00
liudianwu:用句柄或者yuv自己绘制,而不是painter绘制image,你这个现象较冻结假死 (2022-05-31 19:33) 

感谢!
1、是什么原因导致“冻结假死”呢?是调用update函数太频繁了吗?一个相机1秒大概30次,4个相机1秒大概120次。
2、我这是ubuntu系统下的。相机传过来的就是RGB的数据不是yuv的,而且除了图像我还要绘制对图像的检测结果,比如框出检测到的物体等。那要怎么用句柄或yuv来实现呢,有没有相关的资料,感谢!

veizi001 2022-06-01 17:26
起个定时器,按固定频率去刷新

snow_man_0 2022-06-02 06:25
QPainter用CPU绘制,可能4个图像计算负荷过大。QImage生成,用scanLine比setPixelColor效率高很多

lukai_q_t 2022-06-02 08:44
所有的QWidget等的刷新,都必须是主线程.
多线程刷新可能会导致楼主所说的问题。



查看完整版本: [-- 视频流界面停止刷新的问题 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled