{"id":13407653,"url":"https://github.com/langhuihui/monibuca","last_synced_at":"2025-05-14T12:13:16.152Z","repository":{"id":37704858,"uuid":"235764332","full_name":"langhuihui/monibuca","owner":"langhuihui","description":"🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server","archived":false,"fork":false,"pushed_at":"2025-05-13T08:19:33.000Z","size":43932,"stargazers_count":1628,"open_issues_count":11,"forks_count":259,"subscribers_count":35,"default_branch":"v5","last_synced_at":"2025-05-13T08:44:53.469Z","etag":null,"topics":["flv","hdl","hls","livestream","mediaserver","rtmp","rtp","rtsp","ts","webrtc","websocket"],"latest_commit_sha":null,"homepage":"https://monibuca.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/langhuihui.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":"monibuca","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2020-01-23T09:41:32.000Z","updated_at":"2025-05-13T08:26:00.000Z","dependencies_parsed_at":"2023-09-23T04:51:59.908Z","dependency_job_id":"c82d8803-4bae-436f-8d12-f4eae4728ea1","html_url":"https://github.com/langhuihui/monibuca","commit_stats":{"total_commits":349,"total_committers":9,"mean_commits":38.77777777777778,"dds":"0.12320916905444124","last_synced_commit":"c830663e13a506431e19007db792d66027fedbfe"},"previous_names":[],"tags_count":233,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langhuihui%2Fmonibuca","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langhuihui%2Fmonibuca/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langhuihui%2Fmonibuca/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langhuihui%2Fmonibuca/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/langhuihui","download_url":"https://codeload.github.com/langhuihui/monibuca/tar.gz/refs/heads/v5","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254140769,"owners_count":22021220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["flv","hdl","hls","livestream","mediaserver","rtmp","rtp","rtsp","ts","webrtc","websocket"],"created_at":"2024-07-30T20:00:46.230Z","updated_at":"2025-05-14T12:13:11.140Z","avatar_url":"https://github.com/langhuihui.png","language":"JavaScript","funding_links":["https://opencollective.com/monibuca"],"categories":["Go","开源类库","Open source library","Repos 仓库","HarmonyOS"],"sub_categories":["视频","Video","Websocket","Windows Manager"],"readme":"\u003c!-- Improved compatibility of back to top link --\u003e\n\u003ca id=\"readme-top\"\u003e\u003c/a\u003e\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![MIT License][license-shield]][license-url]\n\n\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003eMonibuca v5\u003c/h1\u003e\n\n  \u003cp align=\"center\"\u003e\n    A highly scalable high-performance streaming server development framework developed purely in Go\n    \u003cbr /\u003e\n    \u003ca href=\"./README_CN.md\"\u003e中文文档\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/Monibuca/v5/wiki\"\u003e\u003cstrong\u003eExplore the docs »\u003c/strong\u003e\u003c/a\u003e\n    \u003cbr /\u003e\n    \u003cbr /\u003e\n    \u003ca href=\"https://github.com/Monibuca/v5/issues\"\u003eReport Bug\u003c/a\u003e\n    ·\n    \u003ca href=\"https://github.com/Monibuca/v5/issues\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n\u003c!-- TABLE OF CONTENTS --\u003e\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#about\"\u003eAbout\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#getting-started\"\u003eGetting Started\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#build-tags\"\u003eBuild Tags\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#monitoring\"\u003eMonitoring\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#plugin-development\"\u003ePlugin Development\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#arch\"\u003eArchitecture\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contributing\"\u003eContributing\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#contact\"\u003eContact\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## About\n\nMonibuca is a powerful streaming server framework written entirely in Go. It's designed to be:\n\n- 🚀 **High Performance** - Lock-free design, partial manual memory management, multi-core computing\n- ⚡ **Low Latency** - Zero-wait forwarding, sub-second latency across the entire chain\n- 📦 **Modular** - Load on demand, unlimited extensibility\n- 🔧 **Flexible** - Highly configurable to meet various streaming scenarios\n- 💪 **Scalable** - Supports distributed deployment, easily handles large-scale scenarios\n- 🔍 **Debug Friendly** - Built-in debug plugin, real-time performance monitoring and analysis\n- 🎥 **Media Processing** - Supports screenshot, transcoding, SEI data processing\n- 🔄 **Cluster Capability** - Built-in cascade and room management\n- 🎮 **Preview Features** - Supports video preview, multi-screen preview, custom screen layouts\n- 🔐 **Security** - Provides encrypted transmission and stream authentication\n- 📊 **Performance Monitoring** - Supports stress testing and performance metrics collection\n- 📝 **Log Management** - Log rotation, auto cleanup, custom extensions\n- 🎬 **Recording \u0026 Playback** - Supports MP4, HLS, FLV formats, speed control, seeking, pause\n- ⏱️ **Dynamic Time-Shift** - Dynamic cache design, supports live time-shift playback\n- 🌐 **Remote Call** - Supports gRPC interface for cross-language integration\n- 🏷️ **Stream Alias** - Supports dynamic stream alias, flexible multi-stream management\n- 🤖 **AI Capabilities** - Integrated inference engine, ONNX model support, custom pre/post processing\n- 🪝 **WebHook** - Subscribe to stream lifecycle events for business system integration\n- 🔒 **Private Protocol** - Supports custom private protocols for special business needs\n\n- 🔄 **Supported Protocols**: RTMP, RTSP, HTTP-FLV, WS-FLV, HLS, WebRTC, GB28181, ONVIF, SRT\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Getting Started\n\n### Prerequisites\n\n- Go 1.23 or higher\n- Basic understanding of streaming protocols\n\n### Run with Default Configuration\n\n```bash\ncd example/default\ngo run -tags sqlite main.go\n```\n\n### Web UI\n\nPlace the `admin.zip` file (do not unzip) in the same directory as your configuration file.\n\nThen visit http://localhost:8080 to access the UI.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Examples\n\nFor more examples, please check out the [example](./example) documentation.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Build Tags\n\nThe following build tags can be used to customize your build:\n\n| Build Tag | Description |\n|-----------|-------------|\n| disable_rm | Disables the memory pool |\n| sqlite | Enables the sqlite DB |  \n| sqliteCGO | Enables the sqlite cgo version DB |\n| mysql | Enables the mysql DB |\n| postgres | Enables the postgres DB |\n| duckdb | Enables the duckdb DB |\n| taskpanic | Throws panic, for testing |\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Monitoring\n\nMonibuca supports Prometheus monitoring out of the box. Add the following to your Prometheus configuration:\n\n```yaml\nscrape_configs:\n  - job_name: \"monibuca\"\n    metrics_path: \"/api/metrics\"\n    static_configs:\n      - targets: [\"localhost:8080\"]\n```\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Plugin Development\n\nMonibuca's functionality can be extended through plugins. For information on creating plugins, see the [plugin guide](./plugin/README.md).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Architecture\n\nFor detailed architecture design documentation, please refer to the [Architecture Documentation](./doc/arch/index.md).\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## Contributing\n\nContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.\n\n1. Fork the Project\n2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the Branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n## License\n\nDistributed under the MIT License. See `LICENSE` for more information.\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\u003c!-- CONTACT --\u003e\n## Contact\n\nmonibuca - [@m7server](https://x.com/m7server) - service@monibuca.com\n\nProject Link: [https://github.com/langhuihui/monibuca](https://github.com/langhuihui/monibuca)\n\n\u003cp align=\"right\"\u003e(\u003ca href=\"#readme-top\"\u003eback to top\u003c/a\u003e)\u003c/p\u003e\n\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n[contributors-shield]: https://img.shields.io/github/contributors/langhuihui/monibuca.svg?style=for-the-badge\n[contributors-url]: https://github.com/langhuihui/monibuca/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/langhuihui/monibuca.svg?style=for-the-badge\n[forks-url]: https://github.com/langhuihui/monibuca/network/members\n[stars-shield]: https://img.shields.io/github/stars/langhuihui/monibuca.svg?style=for-the-badge\n[stars-url]: https://github.com/langhuihui/monibuca/stargazers\n[issues-shield]: https://img.shields.io/github/issues/langhuihui/monibuca.svg?style=for-the-badge\n[issues-url]: https://github.com/langhuihui/monibuca/issues\n[license-shield]: https://img.shields.io/github/license/langhuihui/monibuca.svg?style=for-the-badge\n[license-url]: https://github.com/langhuihui/monibuca/blob/v5/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanghuihui%2Fmonibuca","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanghuihui%2Fmonibuca","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanghuihui%2Fmonibuca/lists"}