国外服务器直播网站,海外直播服务器搭建
背景:
最近有个朋友的APP需要在国外搭建一个直播服务器,因为他们的主播在韩国(主播主要是记者),而观众主要在国内,叫我帮忙给他们开发一个直播服务器。
目前开源的直播服务程序有:SRS,Nginx-rtmp;如果是做开发的同学应该有所了解,SRS是基于C++写的,Nginx-rtmp模块是Ngxin的第三方C模块。一开始我是直接部署SRS/Ngxin-rtmp 到我的韩国的服务器,结果直播rtmp或者hls都不理想,经常卡顿,究其原因,还是因为这些协议都是基于TCP,一旦遇到丢包啥的,效果就非常差。
这里,我主要介绍下外海直播常用的场景,以及基于KCP协议的国外直播服务器。
一、海外直播服务器的常用场景:
1)、主播和观众都在国内
适用于客户和观众都在国内,但需要把直播服务器架在海外的客户。直播服务器需要支持传统协议:RTMP、HLS、HTTP-FLV;应用场景如下图所示:
2)、主播在国外、观众在国内
适用主播在国外,观众在国内,但需要把直播服务器架在海外的客户。
三、基于KCP协议的海外直播服务器
为了给朋友搭建一个效果较好的海外直播服务器,我特意学习了一遍KCP协议,帮忙写了APP端的SDK。最终效果还是很棒。我介绍下我开发的流媒体服务的功能:
采用KCP协议作为传输层,具有超强的弱网传输能力和超低的延迟
支持NMS服务之间通过kmp协议进行中继转发
支持推流与播放
SDK版Andorid、IOS全系支持
空一点我拍个视频出来给大家看下效果。大家如果想要讨论技术底层的话可以加WX:stefan1240。貌似只有KCP协议才能达到一个比较好的效果,别的都不太行。
附录:KCP协议
type segment struct {
conv uint32
// 发送端与接收端通信时的匹配数字,发送端发送的数据包中此值与接收端的conv值匹配一致时,接收端才会接受此包
cmd uint8
// 改数据包的协议号,协议号有以下枚举:
// IKCP_CMD_PUSH = 81 // cmd: push data,数据包
// IKCP_CMD_ACK = 82 // cmd: ack,确认包,告诉对方收到数据包
// IKCP_CMD_WASK = 83 // cmd: window probe (ask),询问远端滑动窗口的大小
// IKCP_CMD_WINS = 84 // cmd: window size (tell),告知远端滑动窗口的大小
frg uint8
// 分帧号,由于udp传输有数据包大小的限制,因此,应用层一个数据包可能被分为多个udp包
制自己接下来发送数据的大小wnd uint16
// 滑动窗口的大小
// 当Segment做为发送数据时,此wnd为本机滑动窗口大小,用于告诉远端自己窗口剩余多少
// 当Segment做为接收到数据时,此wnd为远端滑动窗口大小,本机知道了远端窗口剩余多少后,可以控
ts uint32
// timestamp , 当前Segment发送时的时间戳
sn uint32
// Sequence Number,Segment数据包的编号
una uint32
// una即unacknowledged,未确认数据包的编号,表示此编号前的所有包都已收到了。
rto uint32
// rto即Retransmission TimeOut,即超时重传时间,在发送出去时根据之前的网络情况进行设置
xmit uint32
// 基本类似于Segment发送的次数,每发送一次会自加一。用于统计该Segment被重传了几次,用于参考,进行调节
resendts uint32
// 即resend timestamp , 指定重发的时间戳,当当前时间超过这个时间时,则再重发一次这个包。
fastack uint32
// 用于以数据驱动的快速重传机制;
// len uint32 c++版本有数据包的数据长度,go版本无此字段
data []byte}
// 协议数据的具体内容
国外服务器直播网站,海外直播服务器搭建相关推荐
- 云服务器架设网站教程_服务器架设网站教程
服务器架设网站教程 云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service) ...
- 自己搭建网站需要租服务器吗,网站空间租用和自己搭建服务器
网站空间租用和自己搭建服务器 内容精选 换一换 非联通用户请查看设备接入服务.应用可以理解为在物联网平台中为用户的业务划分一个项目空间,当用户在开发中心.线下环境里完成应用服务器侧的开发.物联网平台侧 ...
- 买服务器挂网站吗,云服务器 挂网站吗
云服务器 挂网站吗 内容精选 换一换 购买服务及配置特性时,操作步骤中未框选的配置项请保持默认值.申请服务时,未开通企业管理的用户页面无"企业项目"参数项,无需进行配置.如需开通企 ...
- 2008服务器多网站设置,win2008服务器iis网站设置
win2008服务器iis网站设置 内容精选 换一换 客户端IP指的是访问者(用户设备)的IP地址.在Web应用开发中,通常需要获取客户端真实的IP地址.例如,投票系统为了防止刷票,需要通过获取客户端 ...
- ruby网站部署到服务器,ruby网站部署到服务器
ruby网站部署到服务器 内容精选 换一换 本章节通过示例项目"超级冷笑话网站"介绍如何使用DevCloud开发基于C#语言的Web应用.项目名称:超级冷笑话网站.项目简介:&qu ...
- 换服务器影响网站排名,更换服务器对网站排名有影响吗?-百度权威解答
更换服务器对网站排名的影响 原则上是不会的.除非-新换的服务器太糟糕,三天两头访问失败,或者服务器从国内换到国外,动辄被和谐,诸如此类的"硬件"问题. 百度对网页标题长度有没有限制 ...
- linuxweb服务器域名网站,linux web服务器目录
linux web服务器目录 内容精选 换一换 在FusionInsight Manager软件安装及使用过程中,针对Tomcat基于开源做了如下功能增强:升级Tomcat版本为官方稳定版本.设置应用 ...
- 网站空间跟服务器区别,网站空间和服务器的区别有哪些?
对于很多新手站长来说,可能并不清楚网站空间和服务器的区别.很多朋友经常会说买台主机来建站,真正问他是买网站空间还是买服务器,可能一时又说不上来,对这两者的概念很是模糊. 很多人以为网站空间就是服务器, ...
- DSVS7050签名服务器的网站,吉大正元数字签名服务器-安装部署手册(COM版 VCTK_S接口)2.1.1.doc...
吉大正元数字签名服务器-安装部署手册(COM版 VCTK_S接口)2.1.1 数字签名服务器v2.1.1 安装部署手册 (VSTK接口 COM版) V2.1.1 长 春 吉 大 正 元 信 息 技 术 ...
- 使用服务器测量网站性能,使用服务器时序测量网站性能
Server Timing标头提供了一种离散且方便的方式,可以将后端服务器性能计时与浏览器中的开发人员工具进行通信.通过向应用程序添加计时信息,可以在一个位置监控后端和前端性能. 在进行任何类型的性能 ...
最新文章
- Linux中配置bochs
- Python 卡方检验、克雷姆值
- ubuntu 16.04 安装mysql
- 浅谈https(创建、传输、断开)
- Maven的pom报错的解决方法
- 原子性和一致性的区别是什么?
- ppt计算机控制系统实例,第部分计算机控制系统的应用实例.ppt
- vb mysql登录界面_vb.net 简单上机登陆(面向过程思维)
- mysql全文检索 中文_mysql全文索引不支持中文的解决方案
- Ubuntu ssh-keygen远程登录
- Linux 配置iSCSI Initiator
- 考研日语线上笔记(八):完型易混易考知识点梳理篇
- 【自然语言处理】【ChatGPT系列】大模型的涌现能力
- 探究pytorch model.eval()测试效果远差于model.train()
- JDBC的URL详解
- 零基础 Python学习
- 花半年的时间储备自己
- 我是怎么从安卓到php再成为前端开发工程师的
- C语言函数及分文件编程
- 中国残障人童话爱情电影剧本《奇缘奇恋》招募投资人