干货:如何实现rtsp h265 转 rtmp (rtsp hevc 转 rtmp)并转发到CDN或自建服务器-阿里云开发者社区

开发者社区> 开发与运维> 正文

干货:如何实现rtsp h265 转 rtmp (rtsp hevc 转 rtmp)并转发到CDN或自建服务器

简介:

      rtsp h265 转 rtmp,首先要对rtmp协议做扩展,目前国内已有相应扩展标准,国内开发者基本上都按这个扩展协议做的。协议层问题已解决。剩下关键问题是要实现rtmp h265推送模块, 支持rtmp h265 的server, rtmp h265播放模块。 

      rtmp h265 server 支持,  目前常用的nginx-rtmp 和 srs还不支持rtmp 265. 需要做些修改。 对于srs,和多个srs使用者交流后,有些人已经做过一个简单的支持,关键点就是增加h265类型的支持。

     对于nginx rtmp,由于nginx rtmp 模块代码较少,支持265 很方便,也是增加265类型,解析HEVCDecoderConfigurationRecord,对相应模块做处理即可,大牛直播SDK有提供扩展rtmp H.265服务器,需要测试的开发者,可以加入我们交流群讨论。

      rtmp h265 播放支持, 首先要从rtmp中解析出265,需要解析出h265 nal unit 和 HEVCDecoderConfigurationRecord. 265比264多个vps, 需要解析。另外就是 nal type 针对265需要处理。解析出nal units之后。下一个关键点就是解码,目前安卓部分手机已经支持h265硬解,或者用软解也可以。

      rtmp h265 推送支持,如果已经有了 h265 nal unit, 用 vps, sps, pps 构造出HEVCDecoderConfigurationRecord, 按扩展协议打包rtmp包即可。

     对于rtsp转发h265的话,还需要从rtsp 中拿到h265 nal unit, 这块有文章介绍过,有兴趣的可以参考下,https://blog.csdn.net/lsheevyfg/article/details/81206782

     上面是对方案的讨论,接下来我们看看实际转发效果。

     1. 首选下载265转发工具和rtmp h265播放器, 可以从Github下载 windows版本(后续有其他版本).

image

     2. 打开转发工具并配置.

image

    3. 查看转发效果,请打开SmartPlayer.exe, 输入地址播放就好.

image

     从上图可以看出1080p的转发时延非常低,接近直接播放rtsp时延。另外测试工具自带的推送地址已经支持h265, 无需自己改服务器,测试很方便。

image

更多问题欢迎交流:  github   QQ群: 294891451   499687479 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章