python调用视频流_RTSP协议进行视频取流的方法、注意点及python实现

在视频应用中,我们一般都需要基于摄像头或录像机的视频流进行二次开发,那么就涉及到如何将视频流取出来。

在摄像机安装好之后,一般是通过局域网与本地的服务器进行连接,要取录像机的视频流就要在局域网范围内进行操作。

步骤:

1)获取摄像机的IP地址、配置的用户名和密码,按照格式写出RTSP协议地址码

2)用VLC工具连接,测试是否可以取出视频流

3)python中通过opencv读取视频流

详细说明:

1)摄像机的IP地址、配置的用户名和密码是已知的参数,在安装的时候即已配置好。RTSP协议地址码根据所用摄像机的型号来定,以海康摄像头为例(来自于海康的客服):

★目前海康录像机、网络摄像机,网络球机的RTSP单播取流格式如下(车载录像机不支持RTSP取流):

rtsp://用户名:密码@IP:554/Streaming/Channels/101

→录像机示例:

取第1个通道的主码流预览

rtsp://admin:[email protected]:554/Streaming/Channels/101

取第1个通道的子码流预览

rtsp://admin:[email protected]:554/Streaming/Channels/102

取第1个通道的第三码流预览

rtsp://admin:[email protected]:554/Streaming/Channels/103

取第12个通道的主码流预览

rtsp://admin:[email protected]:554/Streaming/Channels/1201

→网络摄像机/网络球机示例:

取主码流的URL:

rtsp://admin:[email protected]:554/Streaming/Channels/101

★如果是多播取流的话,则使用以下路径

rtsp://用户名:密码@IP:554/Streaming/Channels/101?transportmode=unicast

→录像机示例:

取第1个通道的主码流预览

rtsp://admin:[email protected]:554/Streaming/Channels/101?transportmode=unicast

2)我一般先用VLC工具测试是否可以取出视频流,当然这一步不是必须的。

点击 媒体-->打开网络串流-->输入RTSP地址码

如果能将实时的视频画面取出来,就表明RTSP协议地址码是正确的。

3)用python代码进行取流

代码如下:

import cv2

cap = cv2.VideoCapture('你的RTSP协议地址码')

print(cap)

ret,frame = cap.read()

while ret:

ret,frame = cap.read()

cv2.imshow("current frame",frame)

cv2.imwrite('frame.jpg', frame)

if cv2.waitKey(1) & 0xFF == ord('q'):

break

cv2.destroyAllWindows()

cap.release()

最后在此基础上进行python的二次开发。

你可能感兴趣的:(python调用视频流)