67 Star 294 Fork 103

rancedxk / monitor-rtsp-hls

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

monitor-rtsp-hls

介绍

视频监控RTSP转RTMP转HLS解决方案

由于公司业务,需要实现基于WEB访问监控摄像头实时流的预览,经过各种百度,补充了不少相关知识,了解到了很多大神的实现方法,也因为很多过时的帖子,而踩了不少的坑。

尝试过nginx+ffmpeg的方案,虽然可行,但是实现单摄像头还行,想不明白如何实现多摄像头预览,尝试过写脚本,同时处理多个摄像头,但结果是服务器卡死。

后来尝试通过代码,动态根据当前要访问的设备,来调用ffmpeg命令处理该设备,最终因效果不好,而且各种无法控制而告终。

最终无意间浏览到一大神写的使用javacv实现通过调用ffmpeg库的实现方法,于是就尝试用此方法推流给nginx,由nginx负责将流切片保存,并配置nginx自动删除旧的切片,以节省硬盘空间。

运行流程

输入图片说明

使用说明

  1. 参考根目录下的nginx.conf来配置自己的web代理nginx
  2. 解压nginx-rtmp-server.zip,这是作为rtmp流服务器用的nginx版本,可自行修改conf/nginx.conf配置
  3. 导入monitor-rtsp-hls至eclipse,右键Main.java运行即可,生产环境可打成jar包来运行也可导出为war包部署tomcat运行

打jar包

代码中是集成的Undertow服务器,在项目根目录下执行mvn clean package即可执行打包操作,在target目录下生成项目同名release压缩包,上传服务器解压,修改conf目录中monitor.properties设备配置信息后,即可执行start.bat运行

2020-06-10 补充说明

本项目中的代码是研究参考了很多方案后实现的,和大神的比起来确实是比较糙,但是我的目的只是希望能贡献一个方法,以帮助和我当初有同样困扰的朋友解决问题。

另外说到延迟,我觉得延迟是有,不过就我个人认为,转存后再提供对外访问的实现方式都是存在延迟的,万幸的是好在我们的业务不在乎这个问题。

2020-06-16 奉上整理的几个厂家(主要是海康、大华和宇视)RTSP地址格式

分享链接

2020-06-24 使用时的建议

我在解决一些朋友咨询的问题时发现,他们将根目录中的nginx配置内容放在了nginx-rtmp的配置中,这本来没什么问题,不影响使用,但是这样配置会将nginx-rtmp中的rtmp代理暴露出来,这个还是有一定风险的(因为你可以推流,别人也是可以推流的,只要网络和端口是通的就行),请大家注意这个问题,我还是建议将nginx-rtmp独立运行在内网,另外新建一个用于web代理的nginx来代理m3u8和ts文件

2020-09-19 增加html播放器示例

偶尔有朋友问我怎么播放的问题,干脆将我用的页面播放器上传上来,方便大家使用,感谢大家的使用

2020-09-25 增加另类的H265编码解决办法

最近公司项目需要,无奈必须要解决采用H265编码的监控设备对接问题,经过一番思考,最终采用了一种有点另类的解决办法,那就是结合ffmpeg的转化功能。详细的代码在新增的monitor-rtsp-hls-h265目录中,简单说下实现思路:

主体流程不变,还是对外提供接口,通过传入监控设备的代码,从配置文件中找到相应设备的RTSP流地址,然后通过java的Process类调用命令行的方式,调用外部ffmpeg来实现视频流的切片处理,详见Task类的run方法和convert方法实现。

当然重点是ffmpeg的命令和参数的使用,配置文件中的配置也改为了ffmpeg的安装路径等项,大家可以仔细研究下ffmpeg命令的参数,配置文件中附的有参考的博客链接。

2020-12-09 修改monitor-rtsp-hls-h265中ffmpeg处理rtsp流花屏的问题

在项目使用中出现了监控花屏的情况,在ffmpeg执行命令中增加-rtsp_transport tcp参数,强制使用TCP方式处理RTSP流就行了

感谢

  1. JFinal作者波总开发这么好用的框架,让我爱不释手
  2. 参考网上整理的各主流摄像头的rtsp地址格式
  3. 还有网上大神写的基于javacv将rtsp推至nginx rtmp的帖子,现在找不到了

我的微信

输入图片说明

Comments ( 20 )

Sign in for post a comment

About

视频监控RTSP转HLS解决方案 spread retract
Java and 3 more languages
MulanPSL-2.0
Cancel

Releases

No release

Gitee Metrics

Contributors

All

Activities

load more
can not load any more
Java
1
https://gitee.com/rancedxk/monitor-rtsp-hls.git
git@gitee.com:rancedxk/monitor-rtsp-hls.git
rancedxk
monitor-rtsp-hls
monitor-rtsp-hls
master

Search

103611 48b8ff67 1899542 103622 4d02230c 1899542