SRS4.0 H265分支以支持 h265的hls分发

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

https://github.com/runner365/ffmpeg_rtmp_h265

重新编译,编译步骤可以参考

https://github.com/runner365/srt_encoder/wiki/How-to-compile-cn
不用编译libsrt这个库,相关的后面ffmpeg编译配置命令需要将--enable-libsrt改为--disable-libsrt,还有这个里面h264有个小坑需要修改配置文件,支持静态或者动态库的输出,不然make成功后执行make install没有可拷贝的文件到相关目录下后面编译ffmpeg会报链接不到h264库的错误修改位置如下: 

libx264-git/configure

 到现在为止就将支持h265封装flv推送的ffmpeg编译完成了。

进入正题:

现在的srs的h265分支应该是支持hls格式的h265分发的但是我配置好过后不能成功,需要修改相关配置文件和源代码才能实现,修改如下:

1:修改配置文件

打开trunk/conf/hls.conf

 添加 : hls_vcodec      h265;

 这个地方不是其它博客写的

hls_vcodec      hevc;

或者

hls_vcodec      HEVC;

因为源码中已经定死了是判断的"h265"字符

trunk/src/app/srs_app_hls.cpp

srs_error_t SrsHlsMuxer::segment_open() 函数下的

备注:后面验证了下就算不配置这个选项也没有影响,要配置的话配置为h265不然虽然能成功但是srs里面会报警告。

 

 2:修改源码

trunk/src/kernel/srs_kernel_codec.cpp

srs_error_t SrsFormat::hevc_demux_ibmf_format(SrsBuffer* stream)函数

修改数据处理问题将   

i += vcodec->NAL_unit_length + 1 + NALUnitLength;

修改为:

i += nal_len_size + 1 + NALUnitLength;

这个可以对比h264的相关函数接口

srs_error_t SrsFormat::avc_demux_ibmf_format(SrsBuffer* stream)  查看过后这个地方应该设为nal_len_size

到此就可以实现读取原始h265视频流并通过ffmpeg推送flv到srs服务进行hls的分发了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
敬告:该系列的课程在抓紧录制更新中,敬请大家关注。敬告:本课程项目仅供学习参考,请不要直接商用,概不负责任何法律责任。 该系列的课程涉及:FFmpeg,WebRTC,SRS,Nginx,Darwin,Live555,等。包括:音视频、流媒体、直播、Android、视频监控28181、等。 我将带领大家一起来学习使用FFmpeg开发视频监控项目,并动手操练。具体内容包括: 一、视频监控的架构和流程二、FFmpeg4.3+SDL2+Qt5开发环境的搭建三、FFmpeg的SDK编程回顾总结并操练四、SDL2.0的编程回顾总结并操练五、颜色空间转换RGB和YUV的原理与实战六、Qt5+FFmpeg本地摄像头采集预览实战七、代码封装:摄像头h264/5编码并存储八、Qt5+FFmpeg单路网络摄像头采集预览九、Qt5+FFmpeg单路网络摄像头采集预览录制会看十、onvif与GB/T-28181的简介  音视频与流媒体是一门很复杂的技术,涉及的概念、原理、理论非常多,很多初学者不学 基础理论,而是直接做项目,往往会看到c/c++的代码时一头雾水,不知道代码到底是什么意思,这是为什么呢?   因为没有学习音视频和流媒体的基础理论,就比如学习英语,不学习基本单词,而是天天听英语新闻,总也听不懂。 所以呢,一定要认真学习基础理论,然后再学习播放器、转码器、非编、流媒体直播、视频监控、等等。   梅老师从事音视频与流媒体行业18年;曾在永新视博、中科大洋、百度、美国Harris广播事业部等公司就职,经验丰富;曾亲手主导广电直播全套项目,精通h.264/h.265/aac,曾亲自参与百度app上的网页播放器等实战产品。  目前全身心自主创业,主要聚焦音视频+流媒体行业,精通音视频加密、流媒体在线转码快编等热门产品。  

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值