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

科技资讯 投稿 5400 0 评论

发布摘要

golang流媒体框架,本次发布带来如下更新:

    预览插件引入jessibuca pro demo

  • 启动工程引入conf目录,添加若干常用配置示例

  • 启动工程修改默认配置文件,增加https协议配置,以及hls、llhls

  • 可以自定义favicon.ico

  • 引擎中Stream增加Pause和Resume方法

  • 引擎引入sync.Cond替代伪自旋锁

  • jessica插件引入对http/ws-h264/h265 裸流支持

  • 录制插件在无法创建文件时日志中增加提示

  • ps插件修复一个单端口使用后无法重复使用的bug

  • webtransport通过内置证书方式默认启动

  • gb28181 插件增加ptz的友好接口,已经录像的暂停快进快退接口

详细说明

预览插件更新

预览插件重大更新:引入jessibuca pro demo

本地流的预览更加方便,jessibuca pro demo无需使用本地ng部署,同时解决了公网页面无法访问本地流的问题。

增加更多协议演示

pro demo 中新增支持了HLS-265

其他协议演示可以点击协议切换下拉框选择

 

 

 

自动填入播放地址

在预览插件首页中http://localhost:8080/preview/ 

点击某个流后,会自动跳转到预览地址,并且将播放地址自动填入地址栏中,点击播按钮即可播放

Webtrasnport协议体验也更简单

先默认启动了https以及Webtransport插件,本地只需要修改一下host配置127.0.0.1 local.monibuca.com。即可快速一键体验Webtrasnport协议播放

启动工程更新

增加若干常用配置示例

为了方便快速理解配置文件的格式,本次加入了几个常见配置:

 

    hls.yaml 配置了hls的纯转发模式,关闭了其他功能

  • https.yaml 配置https监听

  • rtmp.yaml 配置了纯rtmp转发,关闭了其他功能

  • rtmps.yaml 配置rtmps协议监听

  • rtsp.yaml 配置了rtsp远端按需拉流,无人订阅自动停止

文件位置在github.com/langhuihui/monibuca/conf

自定义favicon.ico

在启动工程目录下现在可以放置了一个favicon.ico文件,用于内置页面的图标显示,可以自行替换

修改默认的配置文件

global:   http:     listenaddrtls: :8081     certfile: local.monibuca.com_bundle.pem     keyfile: local.monibuca.com.key llhls:   enable: false hls:   enable: false monitor:   enable: false

引擎更新

引擎中Stream增加Pause和Resume方法

这两个方法可以在需要暂停超时检测的时候使用,例如GB协议中录像播放用到的,详细见下文。

引擎引入sync.Cond替代伪自旋锁

伪自旋锁每个10ms检测一次数据是否可读,会增加协程唤醒的次数,虽然相比使用锁的消耗要小很多了,但和单线程模型的相比性能还是差了一些。因此经过尝试,发现sync.Cond可以解决这个问题。但是sync.Cond中也有锁,只不过可以通过一个欺骗的手段,让这个锁形同虚设,因此定义了一个什么也不干的锁给它用:

type EmptyLocker struct{} func (EmptyLocker) Lock()   {} func (EmptyLocker) Unlock() {}

空结构体在go里面不占用任何资源,并且多次调用sync.Cond的Broadcast并不会引起错误,不像WaitGroup的Done无法多次调用。

经过替换后,性能提升大概10~20%。

插件更新

jessica插件引入对http/ws-h264/h265 裸流支持

具体可以在preview插件中体验

record插件增加文件创建失败的提示

部分机器有写入权限,导致录制文件创建失败,之前没有加错误提示。

修复ps插件在单端口调用后没有删除调用者

单端口为了判断是否已经在拉流了,所以有一个map来存放已经拉的流,流结束后没有从map中删除,导致再次拉流失败。

webtransport通过内置证书方式默认启动

由于webtransport协议必须使用https和证书才能使用,所以为了方便体验,将local.monibuca.com证书内置嵌入到了插件中,无需配置即可使用。唯一需要做的就是将127.0.0.1 local.monibuca.com写入host中。

gb28181 插件增加ptz的友好接口,已经录像的暂停快进快退接口

这里感谢@ogofly的贡献,提供了更多友好的http接口

 

编程笔记 » golang流媒体框架,Monibuca v4.6.3 发布 —— 开源 Go 语言流媒体开发框架

赞同 (28) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽