From 8304314e499e663307a4cf201eb036617eb45116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=AE=87=E7=BF=94?= <178529795@qq.com> Date: Wed, 18 Mar 2020 18:32:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=8B=B1=E6=96=87readme=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 89 ++++++++++++++++++++++++++-------------------------- README_zh.md | 62 ++++++++++++++++++++++++++++++++++++ 2 files changed, 107 insertions(+), 44 deletions(-) create mode 100644 README_zh.md diff --git a/README.md b/README.md index e788be3..b770c5e 100644 --- a/README.md +++ b/README.md @@ -1,62 +1,63 @@ -# 主页 +# Introduction -[https://monibuca.com](https://monibuca.com) +🧩 Monibuca is a Modularized, Extensible framework for building Streaming Server. -# 中文文档 +# Quick start -[http://docs.monibuca.com](http://docs.monibuca.com) +1. go get github.com/langhuihui/monibuca +2. $GOPATH/bin/monibuca +3. open your browser http://localhost:8081 +4. use ffmpeg or OBS to push video streaming to rtmp://localhost/live/user1 -# 核心代码库和插件代码库 +# Advanced -[https://github.com/Monibuca](https://github.com/Monibuca) +1. go get github.com/Monibuca/monica +2. $GOPATH/bin/monica +3. open your browser http://localhost:8000 +4. follow the guide to create your project +# Ecosystem -# 本项目为开箱即用的实例demo +go to +[https://plugins.monibuca.com](https://plugins.monibuca.com). +to submit your own plugin -1. go get 获取依赖 -2. go run main 启动实例 -3. 启动后,浏览器打开8081端口查看后台界面 -4. ffmpeg或者OBS推流到1935端口 -5. 后台界面上提供直播预览、录制flv、rtsp拉流转发、日志跟踪等功能 +| Project | Description | +|---------| -------------| +|[rtmpplugin]|rtmp protocol support.push rtmp stream to monibuca.play stream from monibuca. +|[rtspplugin]|rtsp protocol support.pull rtsp stream to monibuca +|[hlsplugin]|pull hls stream to monibuca +|[tsplugin]|used by hlsplugin. read ts file to publish +|[hdlplugin]|http-flv protocol support. pull http-flv stream from monibuca +|[gatewayplugin]|a console and dashboard to display information and status of monibuca ,also can display UI of other plugins +|[recordplugin]|record multimedia stream to flv files +|[clusterplugin]|cascade transmission of multimedia by cluster network -# Monibuca简介 -[Monibuca](https://monibuca.com) 是一个开源的流媒体服务器开发框架,适用于快速定制化开发流媒体服务器,可以对接CDN厂商,作为回源服务器,也可以自己搭建集群部署环境。 丰富的内置插件提供了流媒体服务器的常见功能,例如rtmp server、http-flv、视频录制、QoS等。除此以外还内置了后台web界面,方便观察服务器运行的状态。 也可以自己开发后台管理界面,通过api方式获取服务器的运行信息。 Monibuca 提供了可供定制化开发的插件机制,可以任意扩展其功能。 +[rtmpplugin]: https://github.com/Monibuca/rtmpplugin +[rtspplugin]: https://github.com/Monibuca/rtspplugin +[hlsplugin]:https://github.com/Monibuca/hlspplugin +[tsplugin]:https://github.com/Monibuca/tspplugin +[hdlplugin]:https://github.com/Monibuca/hdlplugin +[gatewayplugin]:https://github.com/Monibuca/gatewayplugin +[recordplugin]:https://github.com/Monibuca/recordplugin +[clusterplugin]:https://github.com/Monibuca/clusterplugin -⚡高性能 - -针对流媒体服务器独特的性质进行的优化,充分利用Golang的goroutine的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存Copy操作。使用对象池减少Golang的GC时间。 - -🔧可扩展 - -流媒体服务器的个性化定制变的更简单,基于Golang语言,开发效率更高,独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。[插件市场](https://plugins.monibuca.com) - -📈可视化 - -功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。 +# Documentation -# 交流微信群 +To check out live examples and docs, visit [https://monibuca.com](https://monibuca.com). -![交流微信群](https://monibuca.com/wechat.png?t=3.11) +# Contact + +wechat group: + +![wechat](https://monibuca.com/wechat.png?t=3.18) # Q&A -## Q:流媒体服务器项目有很多,为什么要重复发明轮子? -A: Monibuca不同于其他流媒体服务器的地方是,针对二次开发为目的。多数流媒体服务器是通用型,完成特定任务的,对于二次开发并不友好。Monibuca开创了插件机制,可以自由组合不同的协议或者功能,定制化特定需求的流媒体服务器。 +## Q: There are so many streaming server projects in the world,why need to create Monibuca? -## Q:Monibuca为何采用Golang为开发语言? -A:因为Golang语言相比其他语言可读性更强,代码简单易懂,更利于二次开发;另外Golang的goroutine特别适合开发高速系统。 +A: Monibuca is different from other streaming servers,that it was created for facilitate secondary development. -## Q:Monibuca是否使用Cgo或者其他语言依赖库? -A:没有。Monibuca是纯Go语言开发,不依赖任何其他第三方库比如FFmpeg,方便二次开发。对部署更友好,仅仅需要Golang运行环境即可。 +## Q: Why use golang? -## Q:如果我要使用Monibuca,正确的流程是什么? -A: 首先安装Monibuca,具体可以查看文档。然后打开实例管理器界面,选择插件,创建实例。这个本质上就是建立了一个Go工程目录,这个工程引用了Monibuca核心库,以及插件库,插件库可以来自任何地方,如果没有满足当前需求的插件,那么可以自行开发一个插件作为业务逻辑插件。如何开发请查询文档。 - -## Q:Monibuca对环境有什么要求?直播流可以在微信里播放吗? -A:Monibuca是基于Golang开发,支持跨平台部署。Monibuca可以用Jessibuca播放器在微信、手机浏览器里面播放视频。也可以通过其他SDK播放RTMP流、其他协议的流。只需要相应的插件支持即可。 - -## Q: Jessibuca是什么? -A: Jessibuca是一款使用Emscripten编译的纯H5播放器,支持H264、H265格式的直播流,尚为开源,有相关需求可以咨询本人。 - -## Q: Monibuca的名称有什么特殊含义吗? -A: 这个单词来源于Monica(莫妮卡)是个人名,在项目里面也存在这个文件夹。没有特别含义,为了解决起名的难题,使用了三个名称分别是Monica、Jessica、Rebecca用来代表服务器、播放器、推流器。由于莫妮卡、杰西卡、瑞贝卡,都带卡字,对直播来说寓意不好,所以改为模拟不卡(Monibuca)、解析不卡(Jessibuca)、累呗不卡(Rebebuca)。其中推流器Rebebuca目前尚为公布,是改造了的OBS,可用于推流H265 +A: Golang is a greate programming language. It is very suited to build streaming server since streaming server is a kind of IO intensive system. \ No newline at end of file diff --git a/README_zh.md b/README_zh.md new file mode 100644 index 0000000..336b035 --- /dev/null +++ b/README_zh.md @@ -0,0 +1,62 @@ +# 主页 + +[https://monibuca.com](https://monibuca.com) + +# 中文文档 + +[http://docs.monibuca.com](http://docs.monibuca.com) + +# 核心代码库和插件代码库 + +[https://github.com/Monibuca](https://github.com/Monibuca) + + +# 本项目为开箱即用的实例demo + +1. go get 获取依赖 +2. go run main 启动实例 +3. 启动后,浏览器打开8081端口查看后台界面 +4. ffmpeg或者OBS推流到1935端口 +5. 后台界面上提供直播预览、录制flv、rtsp拉流转发、日志跟踪等功能 + +# Monibuca简介 +[Monibuca](https://monibuca.com) 是一个开源的流媒体服务器开发框架,适用于快速定制化开发流媒体服务器,可以对接CDN厂商,作为回源服务器,也可以自己搭建集群部署环境。 丰富的内置插件提供了流媒体服务器的常见功能,例如rtmp server、http-flv、视频录制、QoS等。除此以外还内置了后台web界面,方便观察服务器运行的状态。 也可以自己开发后台管理界面,通过api方式获取服务器的运行信息。 Monibuca 提供了可供定制化开发的插件机制,可以任意扩展其功能。 + +⚡高性能 + +针对流媒体服务器独特的性质进行的优化,充分利用Golang的goroutine的性质对大量的连接的读写进行合理的分配计算资源,以及尽可能的减少内存Copy操作。使用对象池减少Golang的GC时间。 + +🔧可扩展 + +流媒体服务器的个性化定制变的更简单,基于Golang语言,开发效率更高,独创的插件机制,可以方便用户定制个性化的功能组合,更高效率的利用服务器资源。[插件市场](https://plugins.monibuca.com) + +📈可视化 + +功能强大的仪表盘可以直观的看到服务器运行的状态、消耗的资源、以及其他统计信息。用户可以利用控制台对服务器进行配置和控制。 + +# 交流微信群 + +![交流微信群](https://monibuca.com/wechat.png?t=3.18) + +# Q&A + +## Q:流媒体服务器项目有很多,为什么要重复发明轮子? +A: Monibuca不同于其他流媒体服务器的地方是,针对二次开发为目的。多数流媒体服务器是通用型,完成特定任务的,对于二次开发并不友好。Monibuca开创了插件机制,可以自由组合不同的协议或者功能,定制化特定需求的流媒体服务器。 + +## Q:Monibuca为何采用Golang为开发语言? +A:因为Golang语言相比其他语言可读性更强,代码简单易懂,更利于二次开发;另外Golang的goroutine特别适合开发高速系统。 + +## Q:Monibuca是否使用Cgo或者其他语言依赖库? +A:没有。Monibuca是纯Go语言开发,不依赖任何其他第三方库比如FFmpeg,方便二次开发。对部署更友好,仅仅需要Golang运行环境即可。 + +## Q:如果我要使用Monibuca,正确的流程是什么? +A: 首先安装Monibuca,具体可以查看文档。然后打开实例管理器界面,选择插件,创建实例。这个本质上就是建立了一个Go工程目录,这个工程引用了Monibuca核心库,以及插件库,插件库可以来自任何地方,如果没有满足当前需求的插件,那么可以自行开发一个插件作为业务逻辑插件。如何开发请查询文档。 + +## Q:Monibuca对环境有什么要求?直播流可以在微信里播放吗? +A:Monibuca是基于Golang开发,支持跨平台部署。Monibuca可以用Jessibuca播放器在微信、手机浏览器里面播放视频。也可以通过其他SDK播放RTMP流、其他协议的流。只需要相应的插件支持即可。 + +## Q: Jessibuca是什么? +A: Jessibuca是一款使用Emscripten编译的纯H5播放器,支持H264、H265格式的直播流,尚为开源,有相关需求可以咨询本人。 + +## Q: Monibuca的名称有什么特殊含义吗? +A: 这个单词来源于Monica(莫妮卡)是个人名,在项目里面也存在这个文件夹。没有特别含义,为了解决起名的难题,使用了三个名称分别是Monica、Jessica、Rebecca用来代表服务器、播放器、推流器。由于莫妮卡、杰西卡、瑞贝卡,都带卡字,对直播来说寓意不好,所以改为模拟不卡(Monibuca)、解析不卡(Jessibuca)、累呗不卡(Rebebuca)。其中推流器Rebebuca目前尚为公布,是改造了的OBS,可用于推流H265