首页 > 展览 > > > 正文
环球短讯!SRS RTMP h265支持
发布时间:2023-04-06 02:03:53   来源:哔哩哔哩  

腾讯课堂 《FFmpeg/WebRTC/RTMP音视频流媒体高级开发》 https://ke.qq.com/course/468797?tuin=137bb271

1 修改ffmpeg版本

往srs服务推流这个步骤,用ffmpeg可以直接实现,用命令或者自己写代码封装相关接口,这个网上也有许多的例子,这里有个问题就是ffmpeg是不支持封装h265为flv推送rtmp的,所以需要修改相关的源码参考网址https://github.com/runner365/ffmpeg_rtmp_h265


【资料图】

可以在我们现有的版本,比如4.2版本上修改添加支持。在原有编译版本上添加支持,我们主要修改, 如果使用我们的代码,则直接将 flv/flvdec.c/flvenc.c覆盖到ffmpeg-4.2.1/libavformat

和FFmpeg4.2的区别

flv.h

libavformat\flvdec.c flvenc.c主要是

相关的判断

完全重新编译

编译步骤可以参考https://github.com/runner365/srt_encoder/wiki/How-to-compile-cn

2 使用srs h265版本

http://ossrs.net/lts/zh-cn/faq, 由于265主要在GB中使用,所以265分支也迁移到了 srs-gb28181

官方文档: http://ossrs.net/lts/zh-cn/docs/v4/doc/hevc/#%E5%A6%82%E4%BD%95rtmp%E6%8E%A8%E6%8B%89%E6%B5%81hevc%E7%A4%BA%E4%BE%8B

编译https://github.com/ossrs/srs-gb28181

git clone  https://github.com/ossrs/srs-gb28181.gitcd srs-gb28181git checkout feature/h265cd trunk./configure

运行配置文件:

./objs/srs -c ./conf/rtmp.conf

3 测试rtmp推/拉流hevc示例

这里一定要注意,重新编译ffmpeg后,在执行ffmpeg命令时一定要确认调用的ffmpeg .so或.a是新编译的,可以通过ldd ffmpeg确定链接的库文件。

在完成支持hevc in flv的定制化ffmpeg编译后,rtmp推流hevc视频编码,如下:

ffmpeg -re -i source.flv -c:v libx265 -c:a aac -f flv rtmp://127.0.0.1/live/livestream

rtmp拉流hevc视频编码格式,如下:

ffmpeg -i rtmp://127.0.0.1/live/livestream -f flv -y livestream.flv

播放:

ffplay rtmp://127.0.0.1/live/livestream

如果要播放rtmp推流H265, 然后HLS拉流,则使用配置文件:

./objs/srs -c ./conf/hls.conf

ffplay http://127.0.0.1:8080/live/livestream.m3u8

关键词:

推荐内容

Copyright@  2015-2022 热讯器材装备网版权所有  备案号: 豫ICP备20005723号-6   联系邮箱:295 911 578@qq.com