python - 使用 Axis 212 PTZ IP 摄像机和 openCV 在 Python 中打开视频流时遇到问题
问题描述
一段时间以来,我一直在尝试使用 openCV 包将我的 Axis 212 PTZ IP 摄像机连接到 Python 窗口,但到目前为止还没有成功。到目前为止,我发现的大多数示例都使用以下代码,特别是带有相机 URL 的 .VideoCapture 函数将其调用到 python 中并随后显示它。
import cv2
# cap = cv2.VideoCapture('rtsp://169.254.218.43/view/viewer_index.shtml?id=17')
# cap = cv2.VideoCapture('http://username_password@169.254.218.43/axis-media/media.amp')
# cap = cv2.VideoCapture("rtsp://root:root@192.168.200.232/0")
# cap = cv2.VideoCapture("http://192.168.200.232/1")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232:1/video")
# cap = cv2.VideoCapture("http://192.168.200.232:1/mjpeg")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232")
# cap = cv2.VideoCapture("http://root:root@192.168.200.232/axis-media/media.amp?camera=1")
# cap = cv2.VideoCapture.read(192.168.200.232)
# cap = cv2.VideoCapture(1)
# cap = cv2.VideoCapture("http://root:root@192.168.200.232/axis-cgi")
# cap = cv2.VideoCapture("http://%IP%/axis-cgi/mjpg/video.cgi?camera=%C%")
# cap = cv2.VideoCapture("axrtpu://%IP%/axis-media/media.amp?resolution=4CIF&fps=15&videocodec=jpeg")
# cap = cv2.VideoCapture(" rtsp://%IP%/axis-media/media.amp?resolution=4CIF&fps=15&videocodec=h264")
# cap = cv2.VideoCapture(0)
cap = cv2.VideoCapture("http://192.168.200.232:8080")
while(True):
print(cap.grab())
ret, frame = cap.read()
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
cv2.destroyAllWindows()
break
当我运行此代码时,我收到以下错误消息:
openCV/IP 摄像头流的 Python 错误消息
Traceback(最近一次调用最后):文件“C:/ABWorkingFiles/Kairos/2020_Mar1/AxisCamera.py”,第 25 行,在 cv2.imshow('frame',frame) cv2.error:
OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\highgui\src\window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in函数 'cv::imshow' [tcp @ 00bd9dc0] 连接到 tcp://192.168.200.232:8080 失败:出现错误号 -138
错误发生在 .imshow(); 断点显示此变量为空,这使我相信 .VideoCapture 代码行没有访问视频数据流并将其带入 python 进行显示。
我尝试使用 rtsp 而不是 http,我尝试在设备上使用设置的用户名和密码,我还尝试调用 /video 和 /mjpeg,但到目前为止我还无法连接视频流到python。当我输入 URL 时,它将在浏览器窗口中运行,我什至能够使用不同的代码示例捕获单个静止图像,因此它可以正常通信,但仍然没有视频。
对此的任何帮助将不胜感激,我对openCV很陌生,我觉得我的语法中可能遗漏了一些简单的东西。我觉得我的问题非常具体,但如果我需要更具体,请告诉我。
谢谢!
解决方案
推荐阅读
- javascript - sockJS 自己的事件名称
- sql - 有人可以帮我理解为什么这会产生 SQL 错误
- c++ - 将图标资源(不包括重复的)保存到磁盘
- javascript - aws lambda:测试事件配置:JSON 事件中的错误
- android - content_main.xml 文件在开头和结尾添加 ScrollView 时崩溃
- c# - CodedUI - Chrome 浏览器中的 Windows 身份验证
- ionic-framework - 如何禁用背景菜单关闭 - Ionic 3
- json - JSON.parse SyntaxError 在同一个键上有多个值
- c# - 参数类型的路由约束参考 - 长列表
- python - Python:搜索长字符串是否在字符串列表中的最快方法