找回密码
 立即注册

QQ登录

只需一步,快速开始

诗仙·1957
金牌服务用户   /  发表于:2023-11-25 10:35  /   查看:2489  /  回复:4
本帖最后由 诗仙·1957 于 2023-11-25 10:53 编辑

为什么要做这个应用?

因为海康的网络硬盘录像机,你只能单个录像机的访问预览或回放,不能同时交叉访问,权限管理不方便

有什么缺点?
萤石云官方免费版最多同时在线3个人使用,且走的外网线路,不是基于内网的查看,速度受限制。
image.png889150695.png


权限控制不能集成第三方?钉钉
4200软件能在电脑上安装软件实现分组添加摄像头或者录像机,但不能像浏览器这样手机或者电脑自由访问,基于权限控制也不能以钉钉集成

当摄像头过多查找困难?

活字格能集成钉钉,能集成手机与电脑的页面,维护与管理与使用也很方便。

思路:
有很多个硬盘录像机,每个录像机开启云服务,添加到同一个萤石云开发者账户中,
然后就获得了每个摄像头的预览地址,回放地址,(该地址是有规律的,因此使用函数拼接字符串就能实现在数据库中表达)

在数据库把每个模块的拼接字段拆分保存起来
image.png85833128.png

然后根据官方的说明
那么对应的拼接规则就是:



"字段1&序列号&""/""&通道号&字段2*token&字段3"
"字段1&序列号&""/""&通道号&字段2*token&字段3"
"字段1&序列号&""/""&通道号&字段2*token&字段3"
"字段1&token&字段2&序列号&""/""&通道号&字段3"
"字段1&token&字段2&序列号&""/""&通道号&字段3"

这样你就可以基于api调用的方式直接获取全部的录像机,然后循环每个录像机或者全部的摄像头列表
根据拼接规则就得到了预览地址与回访地址。
写一个试图来表达将显示的更符合使用规则,就像这样
image.png483247069.png

然后集成活字格钉钉,判断登录用户的权限,可以控制该账户是否有该摄像头的权限

为了方便查找直接整个平面图来基于IP地址定位

image.png283422240.png

每一个摄像头标注在PDF平面图上,

然后分组管理,给不同的人 实现预览或回放不同的摄像头
image.png34804381.png
为模仿预览效果
做了个简易的分屏效果
image.png715429382.png

由于有别人人正在使用,免费版只能3个人同时查看,因此这里看不到画面。这里的访问是基于外网访问的,而不是内网,所以带宽会被限制。

由于api请求的摄像头列表中不包含通道名称,于是需要手动维护,通道名称的好处是中文标识每个摄像头的位置
image.png379014281.png

其他的功能需要自己体验了,

由于采用的是外联表,转内建表,视图无法保留
视图代码是
链接带ip
select row_number() OVER (ORDER BY `a`.`设备序列号` )  AS `id`,`a`.`设备序列号` AS `设备序列号`,`a`.`通道号` AS `通道号`,`a`.`设备名` AS `设备名`,`b`.`IP地址` AS `IP地址`,`c`.`状态` AS `状态`,`b`.`通道名称` AS `通道名称`,`a`.`PC直播极简版` AS `PC直播极简版`,`a`.`PC直播全量版` AS `PC直播全量版`,`a`.`PC回放全量版` AS `PC回放全量版`,`a`.`H5直播全量版` AS `H5直播全量版`,`a`.`H5回放全量版` AS `H5回放全量版` from ((`链接` `a` left join `ip对应` `b` on(((`a`.`设备序列号` = `b`.`设备序列号`) and (`a`.`通道号` = `b`.`通道号`)))) left join `录像机通道状态` `c` on(((`a`.`设备序列号` = `c`.`设备序列号`) and (`a`.`通道号` = `c`.`通道号`))))


链接
select `a`.`设备序列号` AS `设备序列号`,`a`.`通道号` AS `通道号`,`a`.`设备名` AS `设备名`,max((case `a`.`类型` when 'PC直播全量版' then `a`.`说明` else '11' end)) AS `PC直播全量版`,max((case `a`.`类型` when 'PC直播极简版' then `a`.`说明` else '11' end)) AS `PC直播极简版`,max((case `a`.`类型` when 'PC回放全量版' then `a`.`说明` else '11' end)) AS `PC回放全量版`,max((case `a`.`类型` when 'H5直播全量版' then `a`.`说明` else '11' end)) AS `H5直播全量版`,max((case `a`.`类型` when 'H5回放全量版' then `a`.`说明` else '11' end)) AS `H5回放全量版` from (select `a`.`设备序列号` AS `设备序列号`,`a`.`通道号` AS `通道号`,`a`.`设备名` AS `设备名`,`b`.`类型` AS `类型`,(case `b`.`类型` when 'PC直播全量版' then concat(`b`.`字段1`,`a`.`设备序列号`,'/',`a`.`通道号`,`b`.`字段2`,`c`.`AccessToken`,`b`.`字段3`) when 'PC直播极简版' then concat(`b`.`字段1`,`a`.`设备序列号`,'/',`a`.`通道号`,`b`.`字段2`,`c`.`AccessToken`,`b`.`字段3`) when 'PC回放全量版' then concat(`b`.`字段1`,`a`.`设备序列号`,'/',`a`.`通道号`,`b`.`字段2`,`c`.`AccessToken`,`b`.`字段3`) when 'H5直播全量版' then concat(`b`.`字段1`,`c`.`AccessToken`,`b`.`字段2`,`a`.`设备序列号`,'/',`a`.`通道号`,`b`.`字段3`) when 'H5回放全量版' then concat(`b`.`字段1`,`c`.`AccessToken`,`b`.`字段2`,`a`.`设备序列号`,'/',`a`.`通道号`,`b`.`字段3`) else '' end) AS `说明` from ((`摄像头列表` `a` join `轻应用模板` `b`) join `萤石云应用配置` `c`)) `a` group by `a`.`设备序列号`,`a`.`通道号`,`a`.`设备名`






因domo 刚好超过20m 无法上传,请加群免费获取


Q群号  106929215










评分

参与人数 1金币 +666 收起 理由
Simon.Sun + 666 很给力!

查看全部评分

4 个回复

倒序浏览
小侠米
论坛元老   /  发表于:2023-11-27 09:51:22
沙发
加Q了,,,
还是要问一下,内外直接访问监控主机提供的服务怎么整:
1、是否可以实现?
2、如果可以实现,监控主机要怎么设置,提供什么参数
3、活字格怎么取获取摄像头实时画面
回复 使用道具 举报
诗仙·1957
金牌服务用户   /  发表于:2023-11-27 10:55:48
板凳
小侠米 发表于 2023-11-27 09:51
加Q了,,,
还是要问一下,内外直接访问监控主机提供的服务怎么整:
1、是否可以实现?

可以  官方有sdk开发包,但是不会js的 估计就很难,你也可以考虑使用群晖里面的插件实现管理摄像头
回复 使用道具 举报
小侠米
论坛元老   /  发表于:2023-11-27 11:48:23
地板
本帖最后由 小侠米 于 2023-11-27 11:50 编辑
诗仙·1957 发表于 2023-11-27 10:55
可以  官方有sdk开发包,但是不会js的 估计就很难,你也可以考虑使用群晖里面的插件实现管理摄像头

群辉的插件名称叫什么?群辉里面的 套件吧
回复 使用道具 举报
诗仙·1957
金牌服务用户   /  发表于:2023-12-5 14:48:25
5#
小侠米 发表于 2023-11-27 11:48
群辉的插件名称叫什么?群辉里面的 套件吧

Surveillance Station
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部