直播源代码,CDN也存在难点难以解决

CDN一直是直播源代码搭建不可缺少的一部分,它可以帮助增加直播视频流的传输速度、保存直播回放、储存视频数据等,CDN似乎已经成为直播源代码默认的三方工具,但就是这么一个强力的辅助工具,它也有无法解决的难点存在。

一、CDN难点

1、播放延迟,播放延迟多是由网络延迟造成的,是指从主播端采集到观众端播放之间的时间差。本身CDN是为了加速直播源代码传输直播画面存在的,为什么这里说播放延迟是CDN难以解决的难点呢?

在节点少、网络情况较好的情况下,网络延迟相对是最小的,及时存在缓存,延迟也能控制在1-2秒内,但同样的网络环境下,节点变多就会增加网络的延迟,本身用户请求由CDN发送到指定节点上响应有需要时间,网络不好了,这个时间也会变得更长

2、网络抖动,与上述情况一样,保证画面流畅的前提是每一帧的动画都能跟上,一旦有一帧动画遇到了网络拥堵,播放端就无法按照接收顺序把内容播放出来,网络抖动下会造成播放延迟对应增大

二、针对CDN难点的解决方案

直播源代码常用的CDN是存储转发结构,目的是为了能实现各个边缘节点缓存分发内容,是以源站为基础,分配到下面各个小节点上。SDRTN不一样,它本质上是实时传输网络,用户的数据在网络单元内部和传输线路上都以实时交换方式传送,从而保证最低延迟。

如此来看是不是就要抛弃CDN呢?当然不是,SDRTN只是一个传输协议,可以选择抛弃传统基于TCP协议的方案,从底层协议和布网上选择UDP协议的方案。

三、CDN的工作流程

我们来看一下CDN在直播源代码中的工作流程

主播开始直播,向DNS发送解析请求,DNS返回最优的节点IP地址,主播端采集音视频数据,发送给CDN节点,CDN节点进行缓存等处理,观众端要观看直播,开始向DNS发起请求,DNS返回最优节点IP地址,用户向CDN节点请求音视频数据,CDN节点同步其他节点的以视频数据,最后由节点将直播内容发送给用户。

虽然CDN节点存在部分难点,但它发挥的作用仍然是直播源代码无法舍弃的。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任

(0)

相关推荐