Monibuca v4.6.8 发布,开源 Go 语言流媒体开发框架
发布摘要
-
重构Record插件,支持mp4格式(非fmp4)
-
优化HLS插件内存使用
-
rtsp远端拉流默认改成tcp协议
-
订阅者关闭增加关闭原因
-
重构summary,减少无效采集,防止并发读写
-
增加强制关闭订阅者的api
-
远端拉流遇到无法连接的地址不再无限重试
详细说明
Record插件更新
本次发布中,Record
插件更新代码较多。
支持mp4格式
原本的支持的mp4
格式为fmp4
格式,有用户反应文件播放时无法拖放。这是由于fmp4
的格式导致的,fmp4
格式是一种流媒体格式,适合直播场景。本次修改为录制原始mp4
格式。值得注意的时候,这种格式需要在录制完成的时候对文件再次修改,因此如果在文件没有写完时直接关闭进程会导致录制的文件不完整。原来的fmp4
代码依然保留,可以通过配置fmp4
来启用。fmp4
和mp4
不可同时开启录制。
代码重构
主要调整内容是将不同的录制格式的逻辑代码更加统一,更多通过基础结构体完成必要工作。并修复了一个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
。
引擎更新
订阅关闭原因
订阅者在停止时日志上显示的信息较少,并不能反映出这个订阅者停止订阅是由于什么原因导致的,对排查问题造成比较大的困扰。本次更新增加了订阅者在主动或者被动关闭时的原因提示。
强制关闭订阅
有用户反馈需要将某个订阅者关闭,因此增加该api
。http://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
分隔符,但后面跟的NaluType
为8
(PPS
)。从二进制看并非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
协议
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Bun 0.7.3 版本发布:代码覆盖率、测试筛选等多项新功能
Bun是一个令人惊叹的快速的JavaScript运行时、打包器、转译器和包管理器,集多种功能于一身。在过去的几个月里,Bun团队频繁发布更新,不断提升Bun的强大与稳定。Bun 0.7.3版本带来了哪些重要更新呢?让我们来看看。 测试覆盖率报告 Bun测试现在内置支持代码覆盖率报告。只需添加--coverage参数,就可以在终端看到覆盖率报告。这对检查代码质量、发现潜在错误非常有帮助。未来版本还将提供更加详细的序列化报告。 bun test --coverage 正则表达式过滤测试 Bun测试新增了根据正则表达式过滤测试的功能。通过-t参数可以运行匹配指定模式的测试,方便快速定位和执行特定测试用例。 bun test -t /foo/ Bun插件机制优化 推荐使用--preload来加载Bun插件,确保插件在其他代码加载前启动。这可以避免潜在问题和冲突。当然,也可以在bunfig.toml中配置preload。 // my markdown plugin import { plugin, file } from "bun"; plugin({ name: "Mar...
- 下一篇
Bytebase 突破百万下载!
2023 年 8 月 1 日,Bytebase 迎来了又一个里程碑:下载量突破了 100 万次。🎉🧨🥁 距离 Bytebase 0.1.0 版发布已经过去了两年多。作为一个开源项目,Bytebase 的发展速度远超业界老牌数据库变更管理工具 Liquibase 和 Flyway。 作为数据库即代码(database-as-code)方法论的开创者,Bytebase 也是 X as Code 类目下增长最快的开源项目之一。 在过去的两年中,Bytebase 的用户群体已经扩大到全球各地,包括南美洲的中央银行、中东的电子商务平台、东南亚的电信集团、非洲的支付网关、欧洲的电子邮件提供商,甚至是美国一家害虫控制供应商,我们的影响力甚至延伸到了遥远的斐济群岛! Bytebase 也是唯一一个同时被 CNCF Landscape 和 Platform Engineering Landscape 收录的数据库工具。 我们的初心不变:打造一个一站式平台,负责各种不同数据库的变更、查询、安全和治理。将类似 GitLab / GitHub 的代码管理和开发体验带给研发、DBA 和平台工程团队。 继续...
相关文章
文章评论
共有0条评论来说两句吧...