宝华视联 RTSP 格式:
rtsp://用户名:密码@IP:554/stream部分设备路径:
rtsp://user:pwd@192.168.x.x:554/live
1. 安装依赖
pip install opencv-python
Demo1:最简读取并显示 IP 流
import cv2
========== 不同品牌摄像头RTSP地址示例 ==========
海康
ip_stream_url = "rtsp://admin:123456@192.168.1.100:554/Streaming/Channels/101"
大华# ip_stream_url = "rtsp://admin:123456@192.168.1.101:554/cam/realmonitor?channel=1&subtype=0"
宝华视联 【修改这里的账号、密码、IP】
ip_stream_url = "rtsp://admin:123456@192.168.1.102:554/stream"
创建视频捕获对象
cap = cv2.VideoCapture(ip_stream_url)
判断是否打开成功
if not cap.isOpened():
print("无法打开视频流,请检查地址、账号密码、网络")
exit()
while True:
ret, frame = cap.read()
if not ret:
print("读取帧失败,流断开")
break
显示画面
cv2.imshow("IP Camera", frame)
# 按 q 退出窗口
if cv2.waitKey(1) & 0xFF == ord('q'):
break
释放资源
cap.release()
cv2.destroyAllWindows()
##
import cv2
# 地址
ip_stream_url = "rtsp://admin:123456@192.168.1.102:554/stream"
cap = cv2.VideoCapture(ip_stream_url, cv2.CAP_FFMPEG)
# 设置缓冲区大小,越小延迟越低
cap.set(cv2.CAP_PROP_BUFFERSIZE, 2)
if not cap.isOpened():
print("打开流失败")
exit()
while True:
ret, frame = cap.read()
if not ret:
print("帧读取失败")
break
cv2.imshow("Low delay IP Camera", frame)
if cv2.waitKey(1) == ord("q"):
break
cap.release()
cv2.destroyAllWindows()
```## Demo3:后台取帧无窗口版本
import cv2
ip_stream_url = "rtsp://admin:123456@192.168.1.102:554/stream"
cap = cv2.VideoCapture(ip_stream_url, cv2.CAP_FFMPEG)
cap.set(cv2.CAP_PROP_BUFFERSIZE,1)
if not cap.isOpened():
print("流打开失败")
exit()
count = 0
while True:
ret, frame = cap.read()
if not ret:
break
count += 1
# 在这里做图像处理,如检测、保存图片
if count %30 ==0:
print(f"收到第{count}帧,图像shape:{frame.shape}")
cap.release()
## Demo4:带自动重连
import cv2
# RTSP地址
STREAM_URL = "rtsp://admin:123456@192.168.1.102:554/stream"
def create_capture():
cap = cv2.VideoCapture(STREAM_URL, cv2.CAP_FFMPEG)
cap.set(cv2.CAP_PROP_BUFFERSIZE,2)
return cap
cap = create_capture()
while True:
ret, frame = cap.read()
if not ret:
print("流断开,尝试重连...")
cap.release()
cap = create_capture()
continue
cv2.imshow("auto reconnect", frame)
if cv2.waitKey(1) == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
### 常见地址备
如果上面`/stream`打不开,可以试下面路径:
rtsp://admin:123456@192.168.1.102:554/live
rtsp://admin:123456@192.168.1.102:554/rtsp
```>
> 排查技巧:先用 VLC 播放器输入 rtsp 地址测试,VLC 能播放,Python 代码才能正常读取。