点击空白处退出提示
作品详情
项目共分为视频和音频采集监看及机房环境监测两个前端部分,以及一个拉流分析和设备控制功能的后端部分。
1、视频音频采集和监看部分。共监视监看两种不同类型的信号,主要采取采集、推流及直接转码推流两种方式。使用的主要设备是通用型视频采集卡、组播信号源。
流媒体服务器使用开源的SRS,采集、转码和推流使用FFMPEG命令行。界面综合展示部分使用NGINX+PHP。有手机和pc端界面。
电台音频监听使用了多通道声卡进行采集、推流。
2、机房环境监测使用的是简单的ESP8266配合DHT11进行开发。前台界面使用了echar进行温湿度曲线显示。
3、由于该项目纯为个人使用,因此拉流分析及后续控制部分没有界面。主要运行原理是:1)持续拉流,判断服务器有无推流,如果断流,则直接通过IPPBX提供的接口拨打值班室电话进行提示,要求检查设备运行情况;2)针对视频:使用opencv分析画面马赛克、黑屏、视频静帧等异常情况是否存在,如果存在,则标记为异常,进行预设的后续动作(通过串口向切换器发送应急切换指令);3)针对音频:使用ffmpeg分析音频响度,判断是否存在静音等情况。
4、除此之外,还根据现有的业务系统分别开发了视频文件损坏检测及响度自动监测和调整软件,及播出单分析软件,可对存在异常的播出单及时提示。
下图中,由于APP推流业务刚刚下线,因此显示为“连接中”状态。
该项目使用的语言主要是C#、python、PHP及javascript,数据库使用的是mysql,但也连接了sql server获取和分析数据。整个项目原理和实现并不复杂,最难的地方只是网络部分,因为各部分程序分布在4个子网中,每个子网均部署有一台以上的防火墙,网内还有各类安全监测和阻断设备,配置所有防火墙、三层交换机耗费了较多时间,尤其一些组播流需要穿透多台防火墙和三层交换机,这个实施起来很麻烦,最终配置好了安全策略和组播路由解决了。
本项目完全由我自己设计和开发,除使用了一些开源组件外,无其它人参与。
做这个东西纯粹是为了方便自己的工作,便于自己从日常繁琐事务中解脱出来,因此界面部分基本没怎么考虑,怎么方便怎么做了。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论