欢迎光临散文网 会员登陆 & 注册

SRS RTMP h265支持

2023-04-06 02:08 作者:买个车车  | 我要投稿

腾讯课堂 《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.git
cd srs-gb28181
git checkout feature/h265
cd 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

SRS RTMP h265支持的评论 (共 条)

分享到微博请遵守国家法律