Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/langhuihui/monibuca
๐งฉ Monibuca is a Modularized, Extensible framework for building Streaming Server
https://github.com/langhuihui/monibuca
flv hdl hls livestream mediaserver rtmp rtp rtsp ts webrtc websocket
Last synced: 7 days ago
JSON representation
๐งฉ Monibuca is a Modularized, Extensible framework for building Streaming Server
- Host: GitHub
- URL: https://github.com/langhuihui/monibuca
- Owner: langhuihui
- License: agpl-3.0
- Created: 2020-01-23T09:41:32.000Z (about 5 years ago)
- Default Branch: v5
- Last Pushed: 2025-02-06T06:48:00.000Z (14 days ago)
- Last Synced: 2025-02-06T16:11:45.739Z (14 days ago)
- Topics: flv, hdl, hls, livestream, mediaserver, rtmp, rtp, rtsp, ts, webrtc, websocket
- Language: JavaScript
- Homepage: https://monibuca.com
- Size: 39.9 MB
- Stars: 1,550
- Watchers: 36
- Forks: 253
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- go-awesome - Monibuca - streaming server development framework (Open source library / Video)
- awesome-github-repos - langhuihui/monibuca - ๐งฉ Monibuca is a Modularized, Extensible framework for building Streaming Server (Go)
README
[![Contributors][contributors-shield]][contributors-url]
[![Forks][forks-shield]][forks-url]
[![Stargazers][stars-shield]][stars-url]
[![Issues][issues-shield]][issues-url]
[![MIT License][license-shield]][license-url]
Monibuca v5
A highly scalable high-performance streaming server development framework developed purely in Go
ไธญๆๆๆกฃ
ยท
Explore the docs ยป
Report Bug
ยท
Request Feature
Table of Contents
- About
- Getting Started
- Usage
- Build Tags
- Monitoring
- Plugin Development
- Architecture
- Contributing
- License
- Contact
## About
Monibuca is a powerful streaming server framework written entirely in Go. It's designed to be:
- ๐ **High Performance** - Lock-free design, partial manual memory management, multi-core computing
- โก **Low Latency** - Zero-wait forwarding, sub-second latency across the entire chain
- ๐ฆ **Modular** - Load on demand, unlimited extensibility
- ๐ง **Flexible** - Highly configurable to meet various streaming scenarios
- ๐ช **Scalable** - Supports distributed deployment, easily handles large-scale scenarios
- ๐ **Debug Friendly** - Built-in debug plugin, real-time performance monitoring and analysis
- ๐ฅ **Media Processing** - Supports screenshot, transcoding, SEI data processing
- ๐ **Cluster Capability** - Built-in cascade and room management
- ๐ฎ **Preview Features** - Supports video preview, multi-screen preview, custom screen layouts
- ๐ **Security** - Provides encrypted transmission and stream authentication
- ๐ **Performance Monitoring** - Supports stress testing and performance metrics collection
- ๐ **Log Management** - Log rotation, auto cleanup, custom extensions
- ๐ฌ **Recording & Playback** - Supports MP4, HLS, FLV formats, speed control, seeking, pause
- โฑ๏ธ **Dynamic Time-Shift** - Dynamic cache design, supports live time-shift playback
- ๐ **Remote Call** - Supports gRPC interface for cross-language integration
- ๐ท๏ธ **Stream Alias** - Supports dynamic stream alias, flexible multi-stream management
- ๐ค **AI Capabilities** - Integrated inference engine, ONNX model support, custom pre/post processing
- ๐ช **WebHook** - Subscribe to stream lifecycle events for business system integration
- ๐ **Private Protocol** - Supports custom private protocols for special business needs- ๐ **Supported Protocols**: RTMP, RTSP, HTTP-FLV, WS-FLV, HLS, WebRTC, GB28181, ONVIF, SRT
## Getting Started
### Prerequisites
- Go 1.23 or higher
- Basic understanding of streaming protocols### Run with Default Configuration
```bash
cd example/default
go run -tags sqlite main.go
```### Web UI
Place the `admin.zip` file (do not unzip) in the same directory as your configuration file.
Then visit http://localhost:8080 to access the UI.
## Examples
For more examples, please check out the [example](./example) documentation.
## Build Tags
The following build tags can be used to customize your build:
| Build Tag | Description |
|-----------|-------------|
| disable_rm | Disables the memory pool |
| sqlite | Enables the sqlite DB |
| sqliteCGO | Enables the sqlite cgo version DB |
| mysql | Enables the mysql DB |
| postgres | Enables the postgres DB |
| duckdb | Enables the duckdb DB |
| taskpanic | Throws panic, for testing |## Monitoring
Monibuca supports Prometheus monitoring out of the box. Add the following to your Prometheus configuration:
```yaml
scrape_configs:
- job_name: "monibuca"
metrics_path: "/api/metrics"
static_configs:
- targets: ["localhost:8080"]
```## Plugin Development
Monibuca's functionality can be extended through plugins. For information on creating plugins, see the [plugin guide](./plugin/README.md).
## Architecture
For detailed architecture design documentation, please refer to the [Architecture Documentation](./doc/arch/index.md).
## Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request## License
Distributed under the MIT License. See `LICENSE` for more information.
## Contact
monibuca - [@m7server](https://x.com/m7server) - [email protected]
Project Link: [https://github.com/langhuihui/monibuca](https://github.com/langhuihui/monibuca)
[contributors-shield]: https://img.shields.io/github/contributors/langhuihui/monibuca.svg?style=for-the-badge
[contributors-url]: https://github.com/langhuihui/monibuca/graphs/contributors
[forks-shield]: https://img.shields.io/github/forks/langhuihui/monibuca.svg?style=for-the-badge
[forks-url]: https://github.com/langhuihui/monibuca/network/members
[stars-shield]: https://img.shields.io/github/stars/langhuihui/monibuca.svg?style=for-the-badge
[stars-url]: https://github.com/langhuihui/monibuca/stargazers
[issues-shield]: https://img.shields.io/github/issues/langhuihui/monibuca.svg?style=for-the-badge
[issues-url]: https://github.com/langhuihui/monibuca/issues
[license-shield]: https://img.shields.io/github/license/langhuihui/monibuca.svg?style=for-the-badge
[license-url]: https://github.com/langhuihui/monibuca/blob/v5/LICENSE