OpenCV cv2.VideoCapture() 停止读取 RTSP IP 摄像机
Posted
技术标签:
【中文标题】OpenCV cv2.VideoCapture() 停止读取 RTSP IP 摄像机【英文标题】:OpenCV cv2.VideoCapture() stopping to read RTSP IP camera 【发布时间】:2019-02-18 19:43:58 【问题描述】:你好,我正在学习 opencv,我正在通过 rtsp:// 读取网络摄像机
videoStream = "rtsp://admin:123456@10.0.0.1:554/Streaming/Channels/1"
capture = cv2.VideoCapture(videoStream)
我正在阅读此流并在opencv
中进行面部检测
但在 1 或 2 分钟后,我的脚本崩溃并显示 h264
消息,而我的 opencv
代码给了我一个错误:
[h264 @ 0x27e49570] error while decoding MB 55 12, bytestream -12
no video
如果我使用 webcan 它不会发生
有人可以帮助我了解如何让 ip 摄像头流式传输以进行面部检测?
【问题讨论】:
我以较小的分辨率再次运行,它继续工作 4 分钟,但出现同样的错误。[h264 @ 0xb4a5510] error while decoding MB 19 4, bytestream -7
no video
请注意,OpenCV 本身并不处理这个问题。 H264 解码发生在您使用的任何后端,例如FFMPEG。尝试在没有 OpenCV 的情况下首先使用您使用的任何后端,看看问题是否仍然存在。请注意,这种类型的错误不太可能在 Stack Overflow 上被诊断出来,尤其是在信息很少的情况下——这不是您的简单错字或任何事情:)。参见例如:github.com/opencv/opencv/issues/13302
【参考方案1】:
在处理任何帧之前,您可以确保相机是打开的并且获得的帧是有效的。
videoStream = "rtsp://admin:123456@10.0.0.1:554/Streaming/Channels/1"
capture = cv2.VideoCapture(videoStream)
while True:
if capture.isOpened():
status, frame = capture.read()
if status:
# Process frames here
...
如果您无法访问相机或获取损坏的帧,您可以通过cv2.error
捕获此问题。
try:
...
except cv2.error as e:
...
【讨论】:
以上是关于OpenCV cv2.VideoCapture() 停止读取 RTSP IP 摄像机的主要内容,如果未能解决你的问题,请参考以下文章
Opencv python| cv. VideoCapture.get() 参数介绍
从网络摄像头捕获帧,它在 opencv cv2.VideoCapture() 中仅返回 1 帧
对opencv读取的图片进行像素调整(1080, 1920) 1.cv2.VideoCapture(构造图片读取) 2.cv2.nameWindow(构建视频显示的窗口) 3.cv2.setWindo
OpenCV笔记:cv2.VideoCapture 完成视频的跳帧输出操作