如何搭建基于surging的分布式直播流媒体

前言

       这几天一直在优化测试dotnetty,代码是基于https://github.com/cuteant/SpanNetty ,基础上修改优化的,然后发布搭建了分布式rtmp直播服务,内存一直稳定在70mb左右,然后大家可以下载进行测试,也可以观看直播推流的电影,一共有两部,一部是黑衣人,一部是大红包。还有要求性能比较高的,还是关闭链路式跟踪,一般可以用在调试测试和并发不高的系统上,微服务调试用上了链路跟踪大大减少了开发调试时间,就比如某个链路调用出现错误,可以点开查看相关日志,就可以跳到相关日志列表,然后点开某一条日志,就可以看到详细的报错信息

 

 

 

 HttpFlv:http://117.72.121.2:281/httpflv.html  (黑衣人)

 HttpFlv:http://117.72.121.2:281/httpflv1.html  (大红包)

rtmp:rtmp://117.72.121.2:76/live1/livestream2   (黑衣人)

rtmp:rtmp://117.72.121.2:76/live1/livestream3   (大红包)

  凯亚 (Kayak) 是什么?

       凯亚(Kayak)是基于.NET6.0软件环境下的surging微服务引擎进行开发的, 平台包含了微服务和物联网平台。支持异步和响应式编程开发,功能包含了物模型,设备,产品,网络组件的统一管理和微服务平台下的注册中心,服务路由,模块,中间服务等管理。还有多协议适配(TCP,MQTT,UDP,CoAP,HTTP,Grpc,websocket,rtmp,httpflv,webservice,等),通过灵活多样的配置适配能够接入不同厂家不同协议等设备。并且通过设备告警,消息通知,数据可视化等功能。能够让你能快速建立起微服务物联网平台系统。

     凯亚物联网平台:http://117.72.121.2:3100(用户名:fanly  密码:123456)

    链路跟踪Skywalking V8:http://117.72.121.2:8080/

      surging 微服务引擎开源地址:https://github.com/fanliang11/surging(后面surging 会移动到microsurging进行维护)

搭建直播流媒体

   下载地址:

通过网盘分享的文件:rtmp.zip
链接: https://pan.baidu.com/s/12dVChSd1K5Tu7ajv6FC98Q?pwd=hn9u 提取码: hn9u

以下是目录:

点击startup.bat 就能开启分布式直播推流

 在bin 文件中有3.bat,4.bat ,里面是ffmpeg推流3.mp4和4.mp4,需要拷贝两部视频到本目录下,然后点击3.bat和4.bat(你也可以利用OBS Studio等直播软件进行推流)

以下是对应配置(可以通过surgingSettings.json进行修改)

宿主机地址 宿主机端口 是否支持服务器推流 推流地址 RtmpPort HttpFlvPort 文件目录 httflv 文件
127.0.0.1 83

live1/livestream2

live1/livestream3

76 8080 rtmpserver

httpflv3.html(live1/livestream2)

httpflv4.html(live1/livestream3)

127.0.0.1 82

live1/livestream2

live1/livestream3

77 8081 rtmpserver1

httpflv1.html(live1/livestream2)

httpflv5.html(live1/livestream3)

127.0.0.1 84

live1/livestream2

live1/livestream3

74 8082

rtmpserver2

httpflv2.html(live1/livestream2)

                        
 
 
 
 
 
 
 
 
 
 

HttpFlv客户端页面

以下是测试结果,通过推流live1/livestream2,live1/livestream3, 打开6个httpflv 和1个rtmp, 运行1小时10分钟,内存一直稳定在70MB,CPU一直在0.5左右波动。

 通过以上测试,直播推流已经非常稳定了,那么像抖音,快手只要推流做下压缩,帧率在12左右,那么推流大小应该在200kb/s 左右,然后10G带宽,  一台服务器可以支持8000在线观看直播,那么300台就能支持240万,按照正常是这样算的,如果加上还有压缩算法,弹性扩容,推荐流量,聊天,刷礼物,打PK,特效背景等一些功能就可能不止这些服务器,估计要上千台。

总结

以上是基于surging 做的分布式推流,这些能满足部分需要,如果需要强大的功能,如压缩算法,弹性扩容等功能请关注凯亚物联网平台,后续会添加流媒体管理。

From:https://www.cnblogs.com/fanliang11/p/18860510
fanly11
100+评论
captcha