流媒体服务器如何通过opencv获取IP摄像头(IP-camera)实时视频流
我们在想要获取视频流的时候,可以通过网络摄像头获取实时视频流,但是这种方法的缺陷就是摄像头和主机必须连在一起,那这种在室外部署的时候就会非常麻烦并且不安全,还有一种方法,就是用海康威视或者大华的监控摄像头,然后通过IP地址可以无线获取视频流,这样就实现了主机和摄像头分开,方便部署。
本文我就来大概跟大家讲解下这个方法的步骤。
1.设备
这里用的是海康的鱼眼摄像头,型号是DS-2CD3955FWD-IWS,其实基本上能支持sdk二次开发的IP摄像头都可以(参考这里)。鱼眼摄像头相比普通的摄像头经过扭曲,因此在应用的时候一般需要进行反扭曲,这一步会造成比较大的延迟,因此没有不是特定需求的话尽量使用普通的就可以。
注:海康的萤石系列貌似并不能通过RTSP地址获取,而这里的方法需要用RTSP进行视频流获取,所以无法萤石系列就不在此列。
2.通过RTSP地址获取视频流
首先需要知道海康设备的RTSP地址,可以通过这里进行查看。
import cv2
source = ““rtsp://admin:12345@192.168.1.64/Streaming/Channels/1”
注: admin和12345分别是ip camera的用户名和密码,在浏览器上第一次登录摄像头的时候会进行设置;
192.168.1.64是摄像头的默认IP,在浏览器中输入即可进入登录页面(如下):
Channels/1和Channels/2分别对应主码流和子码流地址,两者的分辨率不同。IP摄像头无法通过opencv调节分辨率,只能在海康的监控界面的配置进行设置(如下)。