shilin 9a5cd2df1d ‘视频接入项目提交’ | 3 jaren geleden | |
---|---|---|
.idea | 3 jaren geleden | |
logs | 3 jaren geleden | |
src | 3 jaren geleden | |
target | 3 jaren geleden | |
third | 3 jaren geleden | |
LICENSE | 3 jaren geleden | |
Readme.md | 3 jaren geleden | |
db.sql | 3 jaren geleden | |
monitor-rtsp-hls.iml | 3 jaren geleden | |
package.xml | 3 jaren geleden | |
pom.xml | 3 jaren geleden | |
start.bat | 3 jaren geleden | |
stop.bat | 3 jaren geleden | |
third.zip | 3 jaren geleden |
视频监控RTSP转RTMP转HLS解决方案
由于公司业务,需要实现基于WEB访问监控摄像头实时流的预览,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法,也因为很多过时的帖子,而踩了不少的坑。
例如现在我要接入一台监控设备,那么接入步骤就是:
本程序其实逻辑很简单,就是将nginx和ffmpeg整合起来,一方面将rtsp通过ffmpeg转码生成切片,一方面通过nginx将切片代理出去(大神勿喷,我只是一个搬运工)。 既然是整合,我就在程序中会去控制启动或关闭nginx和ffmpeg,这方面处理的不够好,因为是通过命令窗口启动的服务,所以不可避免的用户可能随手就关掉窗口了,但是其实后台nginx.exe和ffmpeg.exe进程还在运行,所以想了个办法就是增加了一个stop.bat脚本,需要用户手动运行,该脚本的功能就是关闭这两个进程的。 有更好办法的大神,请不吝赐教!
其实也没啥大的调整,正好ffmpeg也支持rtmp,所以只是增加了一个判断处理而已
应一些使用者要求,本次增加了数据库存储监控设备的方式,建表语句db.sql文件在根目录,大家可参考,实现类是com.rancedxk.monitor.device.provider.impl.DbProvider,当然这个实现类仅供参考,大家可自行修改源码并按自己的业务来实现,config.properties中也增加了相应的配置信息供大家参考。 当然大家也可以实现自己的存储方式,比如基于redis或者其他
新增加了一个简单的接口,用来查询当前所有监控设备信息(其实就是从monitor.properties中获取或从数据库中获取的),接口地址:http://{IP}:{服务端口}/{服务context_path}/api/getAllDevices,返回格式:[{code:"dev1",title:"胡南卫视RTMP流",streamUrl:"rtmp://58.200.131.2:1935/livetv/hunantv"}]