python+opencv调用ip摄像头(基于RTSP实现)


python+opencv调用ip摄像头(基于RTSP实现)


  采用RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,RTSP是TCP/IP协议体系中的一个应用层协议实时流协议(RTSP)是应用级协议,控制实时数据的发送。RTSP提供了一个可扩展框架,使实时数据,如音频与视频的受控点播成为可能。数据源包括现场数据与存储在剪辑中数据。该协议目的在于控制多个数据发送连接,为选择发送通道,如UDP、组播UDP与TCP,提供途径,并为选择基于RTP上发送机制提供方法

利用RTSP+opencv就可以实现网络摄像头的调用1

 python代码如下:

# -*- coding: utf-8 -*-
"""
Created on Thu May 23 12:15:24 2019
通过rtsp即实时流传输协议基于TCP/IP协议体系中的一个应用层协议,控制声音或影像的多媒体串流协议。
opencv提供处理画面窗口函数
@author: WFYUN
"""
import cv2
#调用多摄像头画面
#采用rtsp实时流传输协议,各版本IP摄像头rtsp地址见:https://blog.csdn.net/jin_huan11/article/details/78834284
cam_url='rtsp://admin:[email protected]:554/Streaming/Channels/201'
#用以下模板调用其他摄像头,仅限海康
#cam_url='rtsp://admin: 密码  @ IP :554/Streaming/Channels/201'
cap=cv2.VideoCapture(cam_url)                         #调用IP摄像头

if cap.isOpened(): 
    rval, frame = cap.read()                          #读取视频流
else:
    cap.open(cam_url)                                 #打开读取的视频流
    rval = False
    print("error")
while rval:
    frame=cv2.resize(frame,(720,720))                 #调节输出图像的大小
    cv2.imshow("cam_num1", frame)                     #显示视频流
    rval, frame = cap.read()
    key = cv2.waitKey(1)
    if key == 27:                                     #按ESC键退出
        break
cap.release()                                         #释放摄像头
cv2.destroyAllWindows()                               #关闭窗口

感谢博主https://blog.csdn.net/jin_huan11/article/details/78834284提供各个品牌摄像头RTSP地址

你可能感兴趣的:(python+opencv调用ip摄像头(基于RTSP实现))