如何实现低延时直播——超低延时直播方案

原创 2018年04月16日 00:31:33

最近要给一个在海外运营的博彩网站做在线直播,要求超低延时,并且支持手机和PC端直接播放,不安装任何播放插件。

由于这种业务的特殊性,直播延时必须在500ms以内才能接受,否则通过网络参与的博彩者由于时间差就会吃大亏,为此,我考察了N多种方案进行比较。

通过考察,目前主流的实现方案主要有以下几种:

1. 使用rtmp流媒体服务器实现直播分发,客户端用hls协议播放;

优点:集成方便,支持度高,兼容性好,主流手都支持,是目前直播主流技术。

缺点:延时大,一般服务器可以控制切片时长(延时可以控制在10-30秒之间)。

结论:无法满足要求。

2. 基于HTML5浏览器的MSE扩展技术,采用HTTP协议的FLV直播流进行分发,客户端通过浏览器端的格式转封装进行解码播放,服务器端使用支持HTTP FLV的流媒体服务器。

优点:集成方便,兼容性一般,延时可以控制在3秒内。

缺点:(主要是部分浏览器不支持mse,),目前IOS平台的内置浏览器不支持,iOS端的微信内也不能播放,延时稍大。

结论:无法满足要求。

3. 基于WebRTC方式实现直播功能,这方面google已经在大力支持,主流的浏览器也已经支持(Chrome、Firefox、IE11、Safari、Android移动端),直播端到端延时可以控制在0.5秒以内,网络状况好的时候可以达到0.2秒。

优点:终端兼容性好,延时超低并且可控。

缺点:当前的主流CDN还不支持,需要自建流媒体服务器。

结论:符合要求,是当前最为可行的运营方案。

通过以上方案比较,最终确定选用第三种方案来实现这个网络博彩的直播应用。

接下来是具体实现方案的选型。

通过实际测试比较发现,第3种方案的主要技术难点在流媒体服务器端的实现上,不同厂商有不同的技术实现方式,下面做一比较:

1. 采用Java语言来实现。

这种实现方式,需要在操作系统之上安装一个Java虚拟机,由于java虚拟机的性能实在太低,大大影响了平台的整体性能,所以该方案被否定了。

2. 采用PHP语言来实现。

PHP是一种解释型语言,虽然它比java语言性能更高,但是与编译型语言相比性能仍然有很大差距。因此影响了服务器端的整体性能表现。

3. 采用C++语言来实现。

这种实现方式是所有方案中效率最高的,对比测试后发现,它的性能是PHP的十倍,是java的30倍。

因此,最终我们确定找一款基于C++语言来实现的流媒体服务器。经过详细比较和测试,发现“串流直播”团队开发的流媒体服务器性能最优,在同样的硬件环境下(Dell R720/E5-2650x2,32GB内存,万兆网卡),串流直播媒体服务器可以支持5000并发,其它媒体服务器最高支持到1000并发。

其次,直播延时的产生不仅与服务器和客户端有关,还有编码延时有关。为此,我们测试了多种直播编码方案,包括:

1. 硬件H.264编码器。

2. 软件编码器,有“串流直播”、“OBS”、“AdobeFMLE”。

3. 使用带有直播功能的IP摄像机。

综合比较下来,“串流直播”这款专业软件编码器最符合使用需要,因为它支持的直播协议最为丰富、编码延时最低、而且可以根据我们的特殊应用为我们提供个性化改造,包括调整GOP结构,减少H.264编码中的B帧数量,直播数据加密。

信号采集端,采用HD-SDI接口的高清摄像机+工控主机(内接多路高清采集卡)。


版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhiboshequ/article/details/79955433

负载均衡原理

开头先理解一下所谓的“均衡” 不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的...
  • cdnight
  • cdnight
  • 2016-08-12 11:40:25
  • 2282

负载均衡的方式

不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2017-04-18 14:24:29
  • 183

怎么做到微信直播,HTML5直播,低延时

微信直播,HTML5直播目前手页直播,主要方案有如下几种:1,基于hls切片直播,前前是应用的主流,服务器可以选fms,wowza,nginx,srs之类优点:集成方便,支持度高,兼容性好,主流手都支...
  • fangji999
  • fangji999
  • 2017-06-08 11:10:17
  • 2446

手机直播延时直降90% HLS+横空出世

互动直播火在“互动”二字上,弹幕、刷礼物、主播实时“挑逗”都会将你“沉浸”入直播场景中,你与主播、与其它观众像在一间屋子里,不是在看视频,而是场景中的一员,互动直播就火在了这前所未有的场景式“互动”上...
  • charleslei
  • charleslei
  • 2016-07-28 17:04:08
  • 4108

Web负载均衡

序:     对Web站点扩展一开始不宜过早,除非是基于高可用性和就近部署的考虑。但对于架构师而言,在架构设计之初就要有扩展的计划,关键是要清楚何时进行扩展。这里先介绍的是水平扩展,所谓的扩展是...
  • rongwenbin
  • rongwenbin
  • 2013-12-18 10:51:58
  • 352

负载均衡(负载平衡)

原文地址:http://blog.sina.com.cn/s/blog_4b700c4c0102e1lh.html   集群和负载均衡的概念 集群(Cluster)   所谓集群是指一组独立...
  • u010781856
  • u010781856
  • 2015-09-05 09:54:28
  • 3294

低延时直播应用

直播应用中,RTMP和HLS基本上可以覆盖所有客户端观看, HLS主要是延时比较大,RTMP主要优势在于延时低。 一、应用场景 低延时应用场景包括:   .  互动式直播:譬如2013年大行其道的...
  • allnlei
  • allnlei
  • 2016-11-01 17:46:26
  • 1632

使用高清直播编码器进行低延时直播的方法

本文主要讲解了利用4G hdmi直播编码器,结合第三方云平台,如何将专业相机所拍摄的现场进行直播,并通过微信分享。另外,在直播的同时,我们描述了低延时直播方案的系统框图,在rtmp直播的同时,如何获取...
  • guohui703
  • guohui703
  • 2017-07-26 12:33:24
  • 862

服务器负载均衡解决方案

服务器负载均衡解决方案 一、需求分析 随着互联网的高速发展,作为Web、Email、SQL、FTP、ERP、DNS、集群等等常见服务器的请求数据量越来越大,同时对应用的高可用性提出了更高的...
  • aly1989
  • aly1989
  • 2016-02-02 15:18:19
  • 292

负载均衡的方式

不能狭义地理解为分配给所有实际服务器一样多的工作量,因为多台服务器的承载能力各不相同,这可能体现在硬件配置、网络带宽的差异,也可能因为某台服务器身兼多职,我们所说的“均衡”,也就是希望所有服务器都不要...
  • xiaoliuliu2050
  • xiaoliuliu2050
  • 2017-04-18 14:24:29
  • 183
收藏助手
不良信息举报
您举报文章:如何实现低延时直播——超低延时直播方案
举报原因:
原因补充:

(最多只允许输入30个字)