最近,国家政策开始鼓励“地摊经济”,一时间各家企业平台纷纷推出地摊扶持政策,地摊概念股顺势大涨,地摊生态及配套商品也开始走俏,甚至在网络上也涌现出各类“新摊主速成攻略”,万亿的烟火经济俨然已经走上风口。缓存
实际上,早就有人已经在网上“摆地摊”了,那就是直播带货!受到疫情的影响,线下实体纷纷停摆,直播带货受到了史无前例的追捧,企业们纷纷选择经过直播的形式,来提高品牌形象、保持与用户的互动并完成商品的销售。服务器
那么问题就来了,在搭建直播平台或者应用的过程当中,都须要关注哪些技术呢?CDN又对直播起到什么做用呢?网络
一般整个直播的系统可能包括:推流端通过一次边缘节点的加速,将视频直播流推到直播中心,在直播中心完成一系列转码、截图、录制、水印等处理,而后视频流再通过CDN分发,分发到不一样的播放端,播放端有不一样的SDK进行秒开、弱网等优化动做。架构
对于视频直播来说,最重要的两个环节,一个是推流,一个是播放。推流通常采用RTMP协议,经常使用的推流端包括OBS、手机APP、FFmpeg等。播放除了采用RTMP协议,还能够采用HTTP FLV和HLS协议,RTMP和HTTP FLV是流式传输,HLS是文件加速传输,常见的播放端包括:Flash / VLC / HTML5 / 手机App等等。对于阿里云直播系统来说,大部分直播分发都是经过流式传输完成的,只有一少部份量是使用文件加速分发完成的。负载均衡
其实在直播场景中,不论是推流仍是播放,流式分发都是长链接的,一场直播可能5个小时,推流在这5小时内不会中断。对于播放器来说,服务器端获取到的是一帧一帧的音视频数据,不论是什么传输协议,都是采用FLV tag来封装。每一帧音频或者视频,都会有一个时间戳的属性。分布式
视频直播流会传输音频帧和视频帧,对于音频帧来说,它每一帧均可以独立解码,播放器从服务器获取到任何一帧音频帧以后,均可以独立渲染,听到声音。而视频分为视频关键帧和非关键帧,关键帧能够独立解码渲染,播放器拿到后能够直接看到画面,通常10K以上甚至几十K;其余非关键帧解码依赖于前面的一些视频帧,播放器会根据前面的帧和这一帧来解码产生画面,非关键帧通常大小是几K甚至不到1K。对于播放器来讲,服务器通常会从视频关键帧开始发送,这样才不会产生花屏。ide
对于节点上直播服务器存储的内容,若是是文件加速,节点上存储的内容很明确,就是文件数据, URL不变的话文件数据内容也不变。可是对于直播来说,传输的就是帧数据,缓存的也是不断变化的帧序列数据。
下面的图里能够看到,当前的服务器缓存了V1-V3五帧数据,当V4这个关键帧出现了,服务器把以前的丢掉,开始缓存V4开始的音视频数据,以这个策略保证过来的播放端都是当前最新的数据。通常直播服务器都是用这个策略来进行服务器缓存的。优化
一、 前面也说了,直播系统包含推流、转码、分发、播放等各个环境,经历了冗长复杂的网络环境,尤为是当业务场景逐渐丰富起来以后,功能需求也愈来愈多
二、 一些关键指标的提高,好比:卡顿率、打开速度、流畅度、回源率等,任何指标的降低均可能会致使整个应用的用户体验降低,影响直播效果
三、 直播平台常常会面临业务突发,数十万甚至数百万用户的同时在线,对服务器和带宽考验十分巨大阿里云
直播,尤为是电商直播,对网络抖动十分敏感,稍有问题就会出现卡顿、花屏等问题,严重影响用户体验,甚至直接掉线影响销售。CDN借助负载均衡系统可以将内容推送到接近用户的边缘节点,使得用户就近取得资源,能够大大提高访问效率。3d
在确保直播流畅度上,全球覆盖的CDN节点和精准调度系统缺一不可。CDN节点是采用分布式架构,节点资源与带宽储备就表明了可以覆盖的用户的量级和广度。当突发峰值特别高的时候,CDN系统会确保用更精准的调度策略,好比DNS、IP调度,来下降对直播的影响。打比方有一个装了不少冰块和水的杯子,若是咱们要把杯子里面的狭小空间所有用上,咱们先要把冰块放进去,再倒液态水。在智能调度的场景里,把“固体”和“液体”结合起来考虑,才能作到全部的节点、水位的精准控制,实现更精准的调度。
因此,选择节点和带宽资源覆盖普遍,综合实力强,质量有保证,具有大型项目最佳实践的CDN服务提供商对直播带货平台来讲相当重要。想要在云上开启“地摊经济”,阿里云CDN,了解一下:全速重构年中大促中,CDN/全站加速、视频直播、视频点播等多款产品都推出限时折扣,点击阿里云官网活动页面了解优惠详情
点击回顾CDN百科第一讲,最近你的APP崩了吗?
https://developer.aliyun.com/article/757268
点击回顾CDN百科第二讲,假如没用CDN,网络世界会变成什么样?
http://www.javashuo.com/article/p-kkjlmdla-ev.html
CDN百科第三讲,若是用了云服务器,还须要作CDN加速吗?
http://www.javashuo.com/article/p-zxzmbzvy-nr.html
【CDN百科】专栏中,咱们会不断科普CDN知识,解读CDN实践,分享CDN案例,若是你也关注CDN、使用CDN,请留言回复你关心的话题能够留言哦~