# RTSPtoRTMP
**Repository Path**: sunhacker/RTSPtoRTMP
## Basic Information
- **Project Name**: RTSPtoRTMP
- **Description**: 使用JavaCV开发的rtsp流转rtmp流并进行推流的流媒体服务
- **Primary Language**: Java
- **License**: GPL-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 222
- **Created**: 2020-12-11
- **Last Updated**: 2022-06-14
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## RTSPtoRTMP 使用JavaCV开发的rtsp流转rtmp流并进行推流的流媒体服务
**求star!!!**
#### 提问求助等优先提交issues,让其他遇到同样问题的朋友可以很方便找到解决方式,尽量避免直接加微信qq咨询。业务合作可发邮件到banmajio@163.com或添加微信qq咨询。
>**个人博客:[banmajio's blog](https://www.banmajio.com/)**
>**csdn博客:[banmajio's csdn](https://blog.csdn.net/weixin_40777510)**
>**gitee地址:[RTSPtoRTMP](https://gitee.com/banmajio/RTSPtoRTMP)**
### 可以实现各h264编码的监控设备rtsp流转rtmp流(只需要改动controller中rtsp指令的拼接格式)
**接口调用方式:[接口文档](https://github.com/banmajio/RTSPtoRTMP/wiki/%E6%8E%A5%E5%8F%A3%E6%96%87%E6%A1%A3)**
#### [注]:
该项目中的一些处理是为了满足公司项目需求添加完善的,如果需要改造扩展只需要在原来的基础上进行扩充或者剥离即可。最基本的核心操作在CameraPush.java这个类中。
#### 该项目需要搭配使用的nginx服务器下载地址:
[http://cdn.banmajio.com/nginx.rar](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(带宽不足)](https://blog.csdn.net/weixin_40777510/article/details/106802234)
2.对于上述历史回放的问题,现在已经通过对接海康的sdk进行二次开发,通过sdk回调的码流数据自行处理推到rtmp。
>**实现思路参考:**[海康sdk捕获码流数据通过JavaCV推成rtmp流的实现思路(PS流转封装RTMP)](https://blog.csdn.net/weixin_40777510/article/details/105840823)
>**项目搭建过程请参考本人博文:[FFmpeg转封装rtsp到rtmp(无需转码,低资源消耗)](https://www.banmajio.com/post/638986b0.html#more)**
>**开发过程的遇到的一些问题和解决方法,会发布到csdn博客中,[banmajio csdn](https://blog.csdn.net/weixin_40777510)**
**感谢[nn200433](https://github.com/nn200433)小伙伴对本项目的支持,详细改动请参考rp分支内的提交内容**
### 碎银打赏,以资奖励
