您现在的位置是:首页 > 文章详情

Monibuca v4.6.8 发布,开源 Go 语言流媒体开发框架

日期:2023-08-07点击:151

发布摘要

  • 重构Record插件,支持mp4格式(非fmp4)

  • 优化HLS插件内存使用

  • rtsp远端拉流默认改成tcp协议

  • 订阅者关闭增加关闭原因

  • 重构summary,减少无效采集,防止并发读写

  • 增加强制关闭订阅者的api

  • 远端拉流遇到无法连接的地址不再无限重试

详细说明

Record插件更新

本次发布中,Record插件更新代码较多。

支持mp4格式

原本的支持的mp4格式为fmp4格式,有用户反应文件播放时无法拖放。这是由于fmp4的格式导致的,fmp4格式是一种流媒体格式,适合直播场景。本次修改为录制原始mp4格式。值得注意的时候,这种格式需要在录制完成的时候对文件再次修改,因此如果在文件没有写完时直接关闭进程会导致录制的文件不完整。原来的fmp4代码依然保留,可以通过配置fmp4来启用。fmp4mp4不可同时开启录制。

代码重构

主要调整内容是将不同的录制格式的逻辑代码更加统一,更多通过基础结构体完成必要工作。并修复了一个api启用录制时没有将信息存入正在录制的列表中。

增加功能

api调用录制的时候,增加了两个参数,一个是fileName用于自定义文件名。举例:原本录制的live/test文件会是:record/live/test.flv。当我们通过调用http://localhost:8080/record/api/start?streamPath=live/test&fileName=abc后,录制的文件是:record/live/test/abc.flv

引擎更新

订阅关闭原因

订阅者在停止时日志上显示的信息较少,并不能反映出这个订阅者停止订阅是由于什么原因导致的,对排查问题造成比较大的困扰。本次更新增加了订阅者在主动或者被动关闭时的原因提示。

强制关闭订阅

有用户反馈需要将某个订阅者关闭,因此增加该apihttp://localhost/api/stop/subscribe?streamPath=xxx&id=xxx。其中参数id代表这个订阅者的唯一ID

订阅者生成默认ID

这条是为了上面这条服务,订阅者之前的ID没有任何限制,因此可能是空的。本次更新后,如果订阅者的ID在订阅的时候为空,将会默认赋予一个唯一的ID

优化summary

原来的summary会每隔1s运行一次。在没有访问summary信息时候会额外带来一些消耗。本次更新后,summary会在请求序列化的时候进行采集,但采集的频率会限制,1s内不会执行两次。通过缓存机制也防止并发访问summary序列化时导致的错误。

远端推拉防止无限重试

由于之前退出重试需要根据流关闭状态确定,而错误的远端地址会导致流尚且创建就报错,引起无限重试。本次更新增加了这部分判断。

AnnexB兼容性

某些设备输出的PS流里面的H264数据会有一些不规范的数据。具体表现是I帧数据后面出现了00 00 00 01分隔符,但后面跟的NaluType8PPS)。从二进制看并非PPS数据,此时引擎如果处理为PPS后,会导致PPS超大,对后续的RTP打包造成错误。因此目前处理如下:遇到I帧后,本次AnnexB数据后续均视为I帧的一部分。

其他更新

优化HLS内存使用

HLS插件中增加二级缓存,HLS流退出后将复用这个流用到的内存池,减少内存申请。

GB28181插件升级

  • 升级了gosip库版本(v0.0.0-20230802091127-d58873a3fe44

  • 此外修复了一个错误的sip信号导致的nil指针问题。

RTSP插件升级

  • 升级了gortsplib库版本(v3.9.0

  • RTSP默认远端拉流改为tcp协议

原文链接:https://www.oschina.net/news/252673/monibuca-4-6-8-released
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章