IOS开发之使用RTSP协议读取海康摄像头

来源:互联网 发布:淘宝怎么收藏店铺啊 编辑:程序博客网 时间:2024/04/29 06:19
    公司的一个项目中需要调用海康摄像头,但是由于海康的SDK只是提供了萤石云系列的摄像头,也就是说普通的摄像头是无法访问的,在网上找了好多资料没发现可用的SDK。结果发现了另一个思路:使用RTSP协议来读取视频流,这是一个比较新颖的思路,这样就不用使用sdk这种方式需要对不同的摄像头进行多次开发,但是要求你想要访问的摄像头要支持RTSP这个协议,同时你还需要知道你需要访问的摄像头的RTSP协议的格式。
    在网上找了一个比较详细的帖子:感谢这位老兄分享出来 http://www.cnblogs.com/dpf-10/p/5533698.html
帖子的具体内容如下:
海康:
rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
说明:
username: 用户名。例如admin。
password: 密码。例如12345。
ip: 为设备IP。例如 192.0.0.64。
port: 端口号默认为554,若为默认可不填写。(PS:这里一定要注意,这个端口554是RTSP协议使用的端口,而不是摄像头IP的端口号或者设备端口号,刚开始在这里纠结了好久)
codec:有h264、MPEG-4、mpeg4这几种。
channel: 通道号,起始为1。例如通道1,则为ch1。
subtype: 码流类型,主码流为main,辅码流为sub。


例如,请求海康摄像机通道1的主码流,Url如下
主码流:
rtsp://admin:12345@192.0.0.64:554/h264/ch1/main/av_stream(PS:h264的压缩据说要比另外几种格式更小)
rtsp://admin:12345@192.0.0.64:554/MPEG-4/ch1/main/av_stream


子码流:
rtsp://admin:12345@192.0.0.64/mpeg4/ch1/sub/av_stream
rtsp://admin:12345@192.0.0.64/h264/ch1/sub/av_stream


大华:
rtsp://username:password@ip:port/cam/realmonitor?channel=1&subtype=0
说明:
username: 用户名。例如admin。
password: 密码。例如admin。
ip: 为设备IP。例如 10.7.8.122。
port: 端口号默认为554,若为默认可不填写。
channel: 通道号,起始为1。例如通道2,则为channel=2。
subtype: 码流类型,主码流为0(即subtype=0),辅码流为1(即subtype=1)。


例如,请求某设备的通道2的辅码流,Url如下
rtsp://admin:admin@10.12.4.84:554/cam/realmonitor?channel=2&subtype=1

有了RTSP的格式,那么下面就需要一个能读取这个协议的播放器了,还好之前使用VLCKit这个框架做过一个VLCPlayer的一个小Demo,记得这个框架是可以播放RTSP格式的视频的,抱着试试看的态度测试了一下,完全可以播放。

有一个问题需要注意一下:就是在退出的时候一定要关闭这个播放器,不然的话可能会导致如果在很短的时间内第二次将无法访问。


0 1
原创粉丝点击