共计 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 的功能
官方网址:
正文完
加入官方交流QQ群:778957856