Monibuca v4.6.1 发布—— 开源 Go 语言流媒体开发框架

来源: 投稿
作者: Monibuca
2023-06-05 09:19:00
  • 通过官网下载二进制文件

  • 或者 git clone https://github.com/langhuihui/monibuca

获得最新版

1 新增LL-HLS支持

该协议为苹果公司推出的低延迟HLS协议,本次更新新增了对该协议播放支持。 同rtsp库一样,采用了第三方库来实现:github.com/bluenviron/gohlslib

1.1 使用方法

通过访问形如http://localhost:8080/llhls/live/test/index.m3u8来播放。 其中live/test为streamPath,可以替换成实际的值

1.2 插件配置

在llhls下可以配置http配置,用于修改端口号。插件配置方式可以参考文档

1.3 源码说明

llhls相关代码位于github.com/Monibuca/plugin-hlsllhls.go 中。hls和llhls两个插件共用一个代码仓库,因此引入hls时也同时引入了llhls插件。

2 新增HLS.js测试页面

HLS.js测试页面是将hls.js的编译后的代码嵌入到了hls插件仓库中,以方便调试hls流使用。

2.1 访问地址

http://localhost:8080/hls/index.html

该页面也可以用于测试llhls

3 新增对RTMPS协议支持

该协议为RTMP协议的衍生协议,是在TCP基础上增加了TLS安全加固,原理类似HTTPS。 该协议支持是rtmp插件的增强。需要通过配置TLS端口来开启该功能。

3.1 配置

rtmp:
  tcp:
    listenaddrtls: :4443

3.2 推流测试

ffmpeg -i source -f flv rtmps://localhost:4443/live/test

如果配置成443端口,则可以省略端口号

3.3 对外推拉流

已经支持,既可以在配置pull或者push中使用rtmps的远程地址

4 其他更新内容

4.1 优化了HLS纯转发模式的资源消耗

当只需要将HLS拉流转发时,可以使用纯转发模式 纯转发模式由于不需要解析HLS协议中的TS格式,因此对资源消耗比较小。 通过配置HLS插件的 relaymode: 1开启

4.2 修复了当开启时光回溯功能时的内存泄漏

具体原因是,在进行时间戳判断时忽略了当时间戳超过最大值时的情况,导致ringbuffer无限扩大

所谓时光回溯功能,是指可以缓存较多的数据,以订阅当前画面更早一些的画面 通过配置publish配置中的buffertime来开启时光回溯 订阅流时需要指定订阅模式,即需要在订阅时加参数?mode=2 如果需要修改参数名称(有时可能会有冲突,可以通过配置submodeargname 来改变

4.3 WebRTC插件测试页面运行URL中带有参数

为了更方便测试WebRTC功能,允许在访问测试页面时,带上参数

4.3.1 推流测试页面

http://localhost:8080/webrtc/test/publish?streamPath=live/test 可以推送到live/test。不传该参数则推送到live/webrtc

测试房间功能是也可以带上token参数

4.3.2 播放测试页面

http://localhost:8080/webrtc/test/subscribe?streamPath=live/test 可以订阅live/test的流。不传该参数则订阅live/webrtc

4.4 Stream中增加NeverTimeout属性

该属性设置成true可以是的流不再判断超时,保持流永远存活,其目的是有些流并不会产生AudioTrack和VideoTrack,比如纯转发流,或者Room的用于广播消息的流,此时可以在发布成功后,对流设置这个属性

展开阅读全文
点击引领话题📣 发布并加入讨论🔥
0 评论
11 收藏
分享
返回顶部
顶部