如何搭建基于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 (大红包)
播放时间: 5月3日至5月5日 21:00
凯亚 (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) |

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

通过以上测试,直播推流已经非常稳定了,那么像抖音,快手只要推流做下压缩,帧率在12左右,那么推流大小应该在200kb/s 左右,然后10G带宽, 一台服务器可以支持8000在线观看直播,那么300台就能支持240万,按照正常是这样算的,如果加上还有压缩算法,弹性扩容,推荐流量,聊天,刷礼物,打PK,特效背景等一些功能就可能不止这些服务器,估计要上千台。
总结
以上是基于surging 做的分布式推流,这些能满足部分需要,如果需要强大的功能,如压缩算法,弹性扩容等功能请关注凯亚物联网平台,后续会添加流媒体管理。
如何搭建基于surging的分布式直播流媒体的更多相关文章
- Spring+Shiro搭建基于Redis的分布式权限系统(有实例)
摘要: 简单介绍使用Spring+Shiro搭建基于Redis的分布式权限系统. 这篇主要介绍Shiro如何与redis结合搭建分布式权限系统,至于如何使用和配置Shiro就不多说了.完整实例下载地址 ...
- 在Windows下搭建基于nginx的视频直播和点播系统
http://my.oschina.net/gaga/blog/478480 一.软件准备 由于nginx原生是为linux服务的,因此官方并没有编译好的windows版本可以下载,要在windows ...
- 基于SkyWalking的分布式跟踪系统 - 异常告警
通过前面2篇文章我们搭建了SW的基础环境,监控了微服务,能了解所有服务的运行情况.但是当出现服务响应慢,接口耗时严重时我们需要立即定位到问题,这就需要我们今天的主角--监控告警,同时此篇也是SW系列的 ...
- day122:MoFang:OSSRS流媒体直播服务器&基于APICloud的acLive直播推流模块实现RTMP直播推流
目录 1.docker安装OSSRS流媒体直播服务器 2.基于APICloud的acLive直播推流模块实现RTMP直播推流 3.直播流管理 1.docker安装OSSRS流媒体直播服务器 1.OSS ...
- 搭建nginx服务器和直播流媒体服务器
1.nginx简单说明 ① Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.其特点是占有内存少,并发能力强. ...
- 基于SkyWalking的分布式跟踪系统 - 环境搭建
前面的几篇文章我们聊了基于Metrics的监控Prometheus,利用Prometheus和Grafana可以全方位监控你的服务器及应用的性能指标,在出现异常时利用Alertmanager告警及时通 ...
- nginx搭建http和rtmp协议的流媒体服务器
nginx搭建http和rtmp协议的流媒体服务器 时间:2013-09-23 23:52来源:佚名 作者:本站 举报 点击:232次 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtm ...
- 利用Nginx搭建http和rtmp协议的流媒体服务器[转]
利用nginx搭建http和rtmp协议的流媒体服务器 实验目的:让Nginx支持flv和mp4格式文件,同时支持Rtmp协议:同时打开rtmp的hls功能资料:HTTPLive Streaming( ...
- 低代码平台--基于surging开发微服务编排流程引擎构思
前言 微服务对于各位并不陌生,在互联网浪潮下不是在学习微服务的路上,就是在使用改造的路上,每个人对于微服务都有自己理解,有用k8s 就说自己是微服务,有用一些第三方框架spring cloud, du ...
- 面向服务体系架构(SOA)和数据仓库(DW)的思考基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台
面向服务体系架构(SOA)和数据仓库(DW)的思考 基于 IBM 产品体系搭建基于 SOA 和 DW 的企业基础架构平台 当前业界对面向服务体系架构(SOA)和数据仓库(Data Warehouse, ...
随机推荐
- "最新"部署幻兽帕鲁游戏服务器及开局经验分享
Banner 2024,<幻兽帕鲁><雾锁王国>等游戏爆火!那么如何快速拥有一个可以跟小伙伴们愉快玩耍的服务器呢?社区里不少小伙伴已经给出了自己的最佳实践,你甚至不需要懂技术, ...
- [BZOJ3514] [Codechef MARCH14] GERALD07加强版 题解
名字感觉挺奇怪的. 考虑离线算法.首先答案就是用 \(n\) 减去连完边后的生成树森林边数.生成树当然就可以用 \(lct\) 求解了.我是不会告诉你这个时候我已经开始想回滚莫队了的. 考虑当我们倒序 ...
- Deepin 设置开机执行某sh文件
背景 deepin系统上部署了Geoserver,但是每次开机后都得手动过去起,麻烦,故想着找个办法解决下 过程 在/etc/systemd/system目录下新建一个 geoserver.servi ...
- redis - [06] redis-benchmark性能测试
题记部分 001 || 参数含义 002 || 测试100个并发,100000个请求 启动redis-server redis-server /etc/redis.conf 进行性能测试 redis- ...
- idea社区版配置springboot项目问题分析及处理
前言 记录一次使用IDEA社区版配置SpringBoot项目的经历,包括遇到的问题及解决过程 IDEA版本:IntelliJ IDEA 2024.2.3 (Community Edition) 问题描 ...
- Netty基础—1.网络编程基础一
大纲 1.什么是OSI开放系统互连 2.OSI七层模型各层的作用 3.TCP/IP协议的简介 4.TCP和UDP的简介 5.TCP连接的三次握手 6.TCP连接的四次挥手 7.TCP/IP中的数据包 ...
- go 地址对齐保证
unsafe标准库包 func Alignof(variable ArbitraryType) uintptr. 此函数用来取得一个值在内存中的地址对齐保证(address alignment gua ...
- OpenGL与GLSL各版本对应说明
OpenGL 4.6 (API Core Profile) (API Compatibility Profile) OpenGL Shading Language 4.60 Specification ...
- 还原大师-遍历残缺字符串匹配md5杂凑值
题目: 我们得到了一串神秘字符串:TASC?O3RJMV?WDJKX?ZM,问号部分是未知大写字母, 为了确定这个神秘字符串,我们通过了其他途径获得了这个字串的32位MD5码. 但是我们获得它的32位 ...
- K8S组件详解
K8S的控制平面.和工作节点是集群正常运行的核心,通过这两部分的协同工作,K8S才能够实现高效的容器编排.管理.和自动化运维. K8S Kubernetes(简称K8s),是一个开源的容器编排平台,用 ...