python从网络摄像机取视频流的步骤
原创
©著作权归作者所有:来自51CTO博客作者翠柏常青的原创作品,请联系作者获取转载授权,否则将追究法律责任
学习目标:
训练好的模型要到真实环境中使用,怎么能被数据源难倒
代码内容:
提示:这里可以添加要学的内容
import cv2
# ip摄像机地址url
# url = r"rtsp://admin:xxxxxx@192.168.1.75:554/11"
# cap = cv2.VideoCapture(url)
# 访问摄像机需要的信息
ip = '192.168.1.75'
user = 'admin'
password = 'xxxxxx' # 访问摄像机需要密码
# 抓取视频流
cap = cv2.VideoCapture("rtsp://" + user + ":" + password + "@" + ip + ":554/h264/ch1/main/av_stream") # 端口port通常是固定的554
ret, frame = cap.read()
cv2.namedWindow(ip, 0)
cv2.resizeWindow(ip, 500, 300)
# 使用,展示
while ret:
ret, frame = cap.read()
cv2.imshow(ip, frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 退出时释放窗口和内存
cv2.destroyAllWindows()
cap.release()
测试结果:
进阶学习:
了解更多关于rtsp协议取视频流。
- 取海康网络摄像机实时流
url = “rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream”
username:用户名,如:admin
password:密码
ip:设备IP。
port:默认端口554。
codec:视频编码,有h264,MPEG-4等。
channel:通道号,起始为1。通道1表示为ch1
subtype:码流类型,主码流为main,子码流sub.
例如:url = “rtsp://admin:123456@192.168.1.75:554/h264/ch1/main/av_stream” - 大华
- 雄迈/巨峰
- 天视通
其他更多参见:opencv-python读取多个网络摄像机视频流,解决实时延时问题