Monibuca开源流媒体服务框架

1,026次阅读
没有评论

共计 1084 个字符,预计需要花费 3 分钟才能阅读完成。

在短视频,直播行业如火如荼的今天,流媒体服务技术需求越来越大,今天推荐一个基于 `Golang` 语言开发的开源流媒体服务框架。

该框架的有点是:基于 Golang 语言开发,此外并无任何其他依赖构建,并提供了一套插件式的二次开发模型,使用相当灵活,开销低。

流媒体服务器是一种用于分发流媒体的服务器端软件,可用于直播、监控、会议等需要实时观看音视频的场景。流媒体服务器区别于传统 Web 服务器对于实时性要求极高,需要使用各种传输协议,而 Web 服务器则主要以 http/https 协议为主。

Monibuca 由三部分组成:引擎、插件、实例工程。

  • 引擎提供一套通用的流媒体数据缓存以及转发的机制,本身不关心协议如何实现
  • 插件提供其他所有的功能,并可以无限扩展
  • 实例工程是引入引擎和插件并启动引擎的项目工程,可以完全自己编写

主要功能

引擎方面

  • 提供插件机制,对插件的启动,配置解析,事件派发等进行统一管理
  • 提供 H264、H265、AAC、G711 格式的转发
  • 提供可复用的 AVCC 格式、RTP 格式、AnnexB 格式、ADTS 格式等预封装机制
  • 提供多 Track 机制,支持大小流,加密流扩展
  • 提供 DataTrack 机制,可用于实现房间文字聊天等功能
  • 提供时间戳同步机制,限速机制
  • 提供 RTP 包乱序重排机制
  • 提供订阅者追帧跳帧机制(首屏秒开)
  • 提供发布订阅对外推拉的基础架构
  • 提供鉴权机制的底层架构支持
  • 提供内存复用机制
  • 提供发布者断线重连机制
  • 提供按需拉流机制
  • 提供 HTTP 服务端口公用机制
  • 提供 HTTP API 接口自动注册机制
  • 提供 HTTP 接口中间件机制
  • 提供结构化日志
  • 提供流信息统计和输出
  • 提供事件总线机制,可以对所有插件广播事件
  • 提供配置热更新机制

插件方面

  • 提供 RTMP 协议的推拉流,对外推拉流(支持 RTMPS)
  • 提供 RTSP 协议的推拉流,对外推拉流
  • 提供 HTTP-FLV 协议的拉流,对外拉流,读取本地 FLV 文件
  • 提供 WebSocket 协议的拉流
  • 提供 HLS 协议的拉流,对外拉流
  • 提供 WebRTC 协议的推拉流
  • 提供 GB28181 协议的推流, 提供 dump 回放分析能力
  • 提供 Onif 协议的支持
  • 提供 WebTransport 协议的拉流
  • 提供 fmp4 协议的拉流
  • 提供边缘服务器功能,实现级联拉流
  • 提供录像功能,支持 flv、mp4、hls、raw 格式
  • 提供日志持久化功能,支持按天、按小时、按分钟、按秒、按大小、按文件数等多种方式
  • 提供截屏功能
  • 提供 HTTP 回调功能
  • 提供预览功能(集成 Jessibuca Pro)
  • 提供房间功能(可实现视频会议)
  • 提供对接 Prometheus 的功能

官方网址:

Monibuca – GO 语言开源插件式流媒体服务器开发框架 | Monibuca (m7s.live)

正文完
加入官方交流QQ群:778957856
post-qrcode
 1
clark
版权声明:本站原创文章,由 clark 2023-07-15发表,共计1084字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)