一、什么是云导播台
提供对多直播流rtmp或http-flv在直播过程中,实时进行流切换。举例,有多个直播rtmp源的时候,对源动态、实时进行选择,将其中一路直播出来,显示给观众。
二、什么是livego
livego是基于golang开发的rtmp服务器。这里一个简单的云导播台就在livego的框架上进行开发。
三、实现的云导播台功能列表
- rtmp流服务器主动拉取多路直播流;
- 拉取多路直播流指: rtmp流,http-flv流;
- 通过http选举,对拉取到的多份流进行动态选择,选择到的流再推送到上游;
四、云导播基本框架
如上图:
* http控制模块
控制客户端,通过发送http命令,触发:
多个拉流操作: 拉取多个不同的源流
本地拉流模块,选取其中一个模块拉取后,在推送到远端;
* 拉流模块
负责拉流,并且把流推送到本地rtmp://127.0.0.1/xxx/xxxx
* 多流选择模块
根据http协议命令,选择某一个本地流rtmp://127.0.0.1/xxx/xxx进行本地拉取,并且推送到上游指定的rtmp地址
五、源码地址和wiki地址
livego源码: https://github.com/runner365/livego
livego的云导播wiki: https://github.com/runner365/livego/wiki/云导播台–多流切播
有疑问加站长微信联系(非本文作者)