一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第6天,点击查看活动详情。
前言
在上一章中我们分析了海康威视摄像头的web3.2的开发包,知道了想要进行web直接连接摄像头需要摄像头本身支持webSocket连接,一般来说公司采购的摄像头都支持webSocket,个人购买的不一定。
注意事项
1.web3.2无插件版不支持实时对讲,亲测并且咨询了海康威视的技术人员,当然还是有解决方案的,就是很麻烦,自己取声音流通过服务器发送,并不是很推荐,所以就当作不支持就好,说不定以后更新就可以了。 2.摄像头ip映射,因为摄像头流要经过服务器中转,所以需要做映射出去,如果一台服务器要中转多个摄像头的流就要手动配置webSocket端口,但是webSocket的连接地址一直是默认的7681端口,而官网提供的开发包中并没有说明可以手动拼接webSocket端口,在咨询了技术人员后得到了回复:可以在预览的时候传递iWSPort参数,这个参数是webSocket端口,通过这个可以解决修改webSocket端口号后默认预览的端口无法改变的bug。 3.截至2022年1月底我在官网的SDK下载后使用无法播放直播声音,不太清楚是代码问题还是啥问题,找技术人员咨询后给我提供了新的SDK包,成功的播放了声音。 4.多窗口同时预览,因为我是使用vue开发的单页面应用,在尝试了一个页面直接渲染两个直播窗口会出现只能播放一个直播流的问题,在研究后发现只能通过iframe标签引入html文件解决问题,因为iframe是彻底的环境隔离。
流程实现
初始化插件
WebVideoCtrl.I_InitPlugin
联通摄像机
WebVideoCtrl.I_Login
获取模拟通道
WebVideoCtrl.I_GetAnalogChannelInfo
获取通道端口号
WebVideoCtrl.I_GetDevicePort
开始预览
WebVideoCtrl.I_StartRealPlay
退出预览
WebVideoCtrl.I_Stop
退出登录
WebVideoCtrl.I_Logout
其中具体参数太多了可以直接看官方文档