您当前的位置:首页 > 电脑百科 > 网络技术 > 网络知识

CDN视频流中的3个问题以及解决方法

时间:2020-10-20 10:32:36  来源:  作者:

由于CDN要求您通过其数据网导入所有的内容,因此一些流媒体提供商发现他们需要使用多个CDN来到达不同的地区。这意味着管理不同的系统、分散的流媒体以及添加更多的连接来传输流会带来更长时间的延迟以及额外的复杂性。

 

这促使实时流媒体市场的许多人开始转向multi-CDN解决方案。事实上,据预测,到2025年,multi-CDN市场将增长到240亿美元。虽然multi-CDN解决了单个CDN网络的一些问题(地区/区域可用性、价格等),但实际上它只是实时视频流的权宜之计。现在,纯WebRTC分发服务是创建实时流媒体的最佳方式。

 

因此,纯CDN解决方案正逐渐退出市场,至少在直播视频分发方面是如此。原因如下:

 

延迟

 

基于HTTP体系架构构建的CDN根本不具备处理动态更新内容(如实时视频)的传输的能力。它们的工作原理是在区域数据中心缓存数据,以便高效地传递大量数据。这种设计的重点在于吞吐量和可伸缩性,从而形成了最适合处理静态对象(例如网站或预先录制的视频)的网络。

 

缓存会影响延迟,而延迟与传递静态元素(例如网页和VOD)无关紧要。随着实时视频体验变得更具交互性,这意味着它们越来越依赖于低延迟传输。即使只有一秒钟的延迟也会对用户体验和应用程序的实用性产生负面影响。如果它不是实时流式传输,就无法直播。

 

为了解决这个延迟问题,我们需要使用一种新的方案:WebRTC。WebRTC是围绕低延迟流媒体设计的。它可以以小于500毫秒的端到端延迟传输实时视频,这比HLS传输快得多,后者即使经过修改,也只能在最低的情况下降低到2-3秒。因此,纯WebRTC服务预计将从多CDN总流量(total Multi-CDN traffic)的1.2%增长到8.3%。

 

单向流动

 

除了高延迟之外,CDN实际上是围绕着将数据分发到客户端而不是回接收信息而设计的。随着现场体验变得更具交互性,将诸如缩放呼叫、共同查看和粉丝墙体验等功能集成到这些事件中,无法在多个方向上流传输内容对CNDs的实用性是一个重大的损害。

 

CDN中的每个服务器本质上都被用作一个摄取点,它将流推送到CDN以进行大规模的传输。这意味着它可以很好地将数据从原点分发到边缘,但对于反向传输流信息(从边缘返回原点)则不太好。在这种架构下,双向通信效率不高,因为CDN最适合于广播只由订阅者观看的单个流,而不是双向聊天,其中订阅者在订阅视频的同时也在广播视频。对话在双方之间来回进行,因此他们都必须发送和接收视频。这意味着CDN根本不提供这一功能,而想要构建交互式视频体验的开发人员则不得不将完全不同的技术拼凑在一起,而这些技术从来都是预备过的。

 

在CDN模型中,请求的数据需要从原点传输到边缘。一旦中继到最近的边缘服务器,它就必须与每个试图访问流的客户机建立单独的连接。这被称为“最后一英里”,是CDN视频流解决方案带宽消耗的主要来源。一些网络已经找到了解决这个问题的方法来降低数据传输成本。

 

一些提供商使用WebRTC来提高CDN容量。使用WebRTC的话,将有高达70%的峰值流量可以被卸载,这有助于CDN供应商避免基础设施升级,并使CDN分销商能够利用现有预算做更多事情。

 

例如,Peer5、StreamRoot和StriveCast已经创建了点对点共享网络,以转移它们在CDN上的总带宽消耗。他们不必将所有的内容一对一地从edge流到客户端,而是在流相同文件的所有客户端之间创建数据通道连接。这样,视频通过高效的分块传输HLS协议从源服务器发送到边缘服务器。一旦订阅者拉出那些HLS (.ts)段,它就可以在WebRTC数据通道上建立一个P2P连接来将那些段转发给那个对等者。然后,该对等端可以与另一方建立连接。然后重复这个连接过程,这样他们就可以共享相同的视频文件了。这意味着每个用户都不必从CDN(为数据传输收费的网络)中冗余地拉出所有的数据段。

 

虽然这些点对点的网状网络对于VOD传输是有效的,但是对于低延迟的实时流媒体则不是有效的。首先,他们仍然使用HLS段作为流的源,这将导致高延迟的问题。其次,这种网状网络并没有解决双向流的问题。此外,还有另一类新兴的纯WebRTC基础提供商,他们根本不使用CDN,事实上它们已经完全取代了CDN。

 

同步化

 

实时延迟还释放了与视频流的其他数据正确同步的能力。这开启了添加聊天功能、实时覆盖叠加和交互式图形、虚拟黑板、实时下注和拍卖出价、GPS数据和许多其他的功能。例如,一个体育广播可以有一个实时的图形显示功能,它可以与屏幕上发生的最新状态保持同步。正确的同步与实时延迟相结合,也可以防止恼人的剧透,从而确保不会破坏其他人的观看体验。它还可以确保聊天中的评论与当前显示的内容一致。

 

对于这些用例,数据可以通过WebRTC数据通道或单独的websocket通道发送,这可以使用SharedObjects方法实现。SharedObjects管理多个客户端之间的数据提要,从而实现数据的一致传输。这样可以确保广播者,订户和任何其他功能之间的完全交互。

 

在GitHub上可以找到更多示例:

 

  • SharedObject:https://github.com/red5pro/streaming-html5/tree/master/src/page/test/sharedObject
  • SharedObject

IOS:https://github.com/red5pro/streaming-ios/tree/master/R5ProTestbed/Tests/SharedObject

Android:https://github.com/red5pro/streaming-android/tree/master/App/src/main/JAVA/red5pro/org/testandroidproject/tests/SharedObjectTest

 

所有这些关于CDN实时流传输局限性的讨论可能会给你一种印象:即它们应该被纯WebRTC解决方案所取代。然而,它们在视频流媒体中仍然扮演着非常有价值的角色。CDN对于交付视频点播内容以及静态对象(如网站和静态图像)仍然很有用。然而,当涉及到动态更新的元素(如实时视频流)时,CDN永远无法正确处理它们。与许多其他技术要素一样,市场的需求也扩大并发生了变化。CND正在试图适应这种情况,但它们基于HTTP的基本架构造成了高延迟、单向流限制和同步问题。这些问题,会由新的直播架构模型来解决。



Tags:CDN视频流   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
由于CDN要求您通过其数据网导入所有的内容,因此一些流媒体提供商发现他们需要使用多个CDN来到达不同的地区。这意味着管理不同的系统、分散的流媒体以及添加更多的连接来传输...【详细内容】
2020-10-20  Tags: CDN视频流  点击:(77)  评论:(0)  加入收藏
▌简易百科推荐
HTTP 报文是在应用程序之间发送的数据块,这些数据块将通过以文本形式的元信息开头,用于 HTTP 协议交互。请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响应...【详细内容】
2021-12-27  程序员蛋蛋    Tags:HTTP 报文   点击:(0)  评论:(0)  加入收藏
一 网络概念:1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率...【详细内容】
2021-12-27  码农世界    Tags:网络   点击:(2)  评论:(0)  加入收藏
1.TCP/IP 网络模型有几层?分别有什么用? TCP/IP网络模型总共有五层 1.应用层:我们能接触到的就是应用层了,手机,电脑这些这些设备都属于应用层。 2.传输层:就是为应用层提供网络...【详细内容】
2021-12-22  憨猪哥08    Tags:TCP/IP   点击:(29)  评论:(0)  加入收藏
TCP握手的时候维护的队列 半连接队列(SYN队列) 全连接队列(accepted队列)半连接队列是什么?服务器收到客户端SYN数据包后,Linux内核会把该连接存储到半连接队列中,并响应SYN+ACK报...【详细内容】
2021-12-21  DifferentJava    Tags:TCP   点击:(9)  评论:(0)  加入收藏
你好,这里是科技前哨。 随着“元宇宙”概念的爆火,下一代互联网即将到来,也成了互联网前沿热议的话题,12月9日美国众议院的听证会上,共和党议员Patrick McHenry甚至宣称,要调整现...【详细内容】
2021-12-17  王煜全    Tags:Web3   点击:(14)  评论:(0)  加入收藏
一、demopublic static void main(String[] args) throws Exception { RetryPolicy retryPolicy = new ExponentialBackoffRetry( 1000, 3);...【详细内容】
2021-12-15  程序员阿龙    Tags:Curator   点击:(20)  评论:(0)  加入收藏
一、计算机网络概述 1.1 计算机网络的分类按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);按照网络使用者:公用网络、专用网络。1.2 计算机网络的层次结构 TCP/IP四层模...【详细内容】
2021-12-14  一口Linux    Tags:网络知识   点击:(30)  评论:(0)  加入收藏
无论是在外面还是在家里,许多人都习惯了用手机连接 WiFi 进行上网。不知道大家有没有遇到过这样一种情况, 明明已经显示成功连接 WiFi,却仍然提示“网络不可用”或“不可上网”...【详细内容】
2021-12-14  UGREEN绿联    Tags:WiFi   点击:(25)  评论:(0)  加入收藏
拉了千兆宽带,买了标称 1300Mbps 的无线路由器,为什么 WiFi 还是跑不满千兆?要回答这个问题,我们先得知道这个 1300Mbps 是怎么来的。开始回答之前先说明一下,这期只讲 802.11ac,...【详细内容】
2021-12-14  Ubiquiti优倍快    Tags:WiFi   点击:(83)  评论:(0)  加入收藏
问题背景IPv6环境下,在浏览器中通过http://[vip:port]访问web业务,提示无法访问此网站,[vip]的响应时间过长。分析过程之前碰到过多次在PC浏览器上无法访问vip的情况,排查方法也...【详细内容】
2021-12-13  云原生知识星球    Tags:网络问题   点击:(27)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条