Skip to content

使用JavaCV开发的rtsp流转http-flv流(rtmp已不支持)并进行推流的流媒体服务

License

Notifications You must be signed in to change notification settings

banmajio/RTSPtoHTTP-FLV

Repository files navigation

RTSPtoHTTP-FLV 使用JavaCV开发的rtsp流转http-flv流(rtmp已不推荐)并进行推流的流媒体服务

求star!!!

提问求助等优先提交issues,让其他遇到同样问题的朋友可以很方便找到解决方式,尽量避免直接加微信qq咨询。业务合作可发邮件到banmajio@163.com或添加微信qq咨询。

各大浏览器目前均已不再支持flash,故推荐使用http-flv来代替rtmp使用。

参考资料 只需修改本项目controller中rtmp地址生成的地方改为生成http-flv地址即可,各流媒体服务器对于http-flv地址规则可能会有差异,根据所选流媒体服务器来制定http-flv地址。

个人博客:banmajio's blog csdn博客:banmajio's csdn gitee地址:RTSPtoRTMP

可以实现各h264编码的监控设备rtsp流转rtmp流(只需要改动controller中rtsp指令的拼接格式)

接口调用方式:接口文档

[注]:

该项目中的一些处理是为了满足公司项目需求添加完善的,如果需要改造扩展只需要在原来的基础上进行扩充或者剥离即可。最基本的核心操作在CameraPush.java这个类中。

该项目需要搭配使用的nginx服务器下载地址:

http://cdn.banmajio.com/nginx.rar 下载后解压该文件,点击nginx.exe(闪退是正常的,可以通过任务管理器查看是否存在nginx进程,存在则说明启动成功了)启动nginx服务。nginx的配置文件存放在conf目录下的nginx.conf,根据需要修改。项目中的rtmp地址就是根据这个配置文件来的。

存在的问题:

1.部分设备或NVR在进行历史回放时,会出现带宽不足的报错,暂不清楚造成该情况的具体原因。如果出现rtsp地址带时间戳参数进行历史回放出现报错或者无法播放的情况,请考虑使用厂家提供的sdk进行二次开发,捕获码流数据自行处理推成rtmp流。

出现此问题的原因参考:使用rtsp带starttime和endtime进行历史回放报453 Not Enough Bandwidth(带宽不足)

2.对于上述历史回放的问题,现在已经通过对接海康的sdk进行二次开发,通过sdk回调的码流数据自行处理推到rtmp。

实现思路参考:海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)

项目搭建过程请参考本人博文:FFmpeg转封装rtsp到rtmp(无需转码,低资源消耗)

开发过程的遇到的一些问题和解决方法,会发布到csdn博客中,banmajio csdn

感谢nn200433小伙伴对本项目的支持,详细改动请参考rp分支内的提交内容

碎银打赏

Star History

Star History Chart