livego 直播系统

https://github.com/gwuhaolin/livego



一、什么是云导播台
提供对多直播流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地址



https://github.com/yangwm/ppt/blob/master/GolangPerformancePractice.pdf



https://www.zhihu.com/question/42162310



https://www.jianshu.com/p/7bd3f6b62d19



https://gitee.com/611041314/livego



https://github.com/qieangel2013/livego
https://www.cnblogs.com/runner42/p/7248974.html



4) 使用ffmpeg给livego推流



ffmpeg -re -i source.200kbps.768x320.flv -c copy -f flv rtmp://localhost:1935/live/movie



5) 使用ffplay播放rtmp直播流



ffplay -i rtmp://localhost:1935/live/movie



https://www.cnblogs.com/dong1/p/9574508.html



https://blog.csdn.net/weixin_39998006/article/details/106683184



FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec,为了保证高可移植性和编解码质量,libavcodec里很多code都是从头开发的。



https://github.com/FFmpeg/FFmpeg



https://github.com/gwuhaolin/livego



https://github.com/gwuhaolin/blog/issues/3



https://github.com/gwuhaolin/livego/blob/master/README_cn.md



https://blog.csdn.net/qq_44291044/article/details/99703150


Category golang