首页 新闻 会员 周边 捐助

opencvsharp调用4K摄像头,有延迟,如何解决

0
[待解决问题]

基于C#+winform开发,使用opencvsharp调用3840*2160分辨率,设置了视频格式MJPG,使用多线程读取一帧videoCapture.Read(frameMat),读取的速度达不到1秒30帧,录视频也达不到

yuxianan的主页 yuxianan | 菜鸟二级 | 园豆:202
提问于:2025-08-18 11:37
< >
分享
所有回答(1)
0

使用队列 + 多线程,一个读放队列里,另一个从队列里取,然后绘制,记得队列保留几个做缓存,不然不流畅,会卡顿。

我们当时开发也试了,不知道为啥就是一秒不够30帧

echo_lovely | 园豆:1714 (小虾三级) | 2025-08-18 15:19

videoCapture.Read(frameMat)这个读的代码就要花费80多毫秒,这样就达不到1秒30帧了,放队列也没用,还有就是录视频功能写入视频文件的时候也慢

支持(0) 反对(0) yuxianan | 园豆:202 (菜鸟二级) | 2025-08-18 15:23

@yuxianan:
videoCapture.Read(frameMat)这个读的代码就要花费80多毫秒 估计是带宽不够。

支持(0) 反对(0) echo_lovely | 园豆:1714 (小虾三级) | 2025-08-18 15:30

@yuxianan: 你们干啥使啊,4k@60Hz这么高的帧率,一般线缆带宽可不够啊。试试H.264或者265编码的吧。摄像头可以试试yuv格式的

支持(0) 反对(0) echo_lovely | 园豆:1714 (小虾三级) | 2025-08-18 15:32

@echo_lovely: 用的USB3.0,像OBS或者AMCAP的软件就非常流畅,是opencvsharp本身的局限性吗

支持(0) 反对(0) yuxianan | 园豆:202 (菜鸟二级) | 2025-08-18 15:33

@echo_lovely: 只能设置成MJPG,设置成其他的格式,要么不显示图像,要么就卡的很严重

支持(0) 反对(0) yuxianan | 园豆:202 (菜鸟二级) | 2025-08-18 15:34

@yuxianan: 我感觉OBS拉流估计没有4k,你可以试试ffmpeg命令行,看看ffmpeg效果怎么样。opencv底层也是ffmpeg

支持(0) 反对(0) echo_lovely | 园豆:1714 (小虾三级) | 2025-08-18 15:38

@yuxianan: 我感觉OBS拉流估计没有4k或者没有60Hz

支持(0) 反对(0) echo_lovely | 园豆:1714 (小虾三级) | 2025-08-18 15:38
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册