GITC干货分享:金山云直播服务架构探索

 

GITC演讲干货!快来一起探索直播服务架构技术演进之路!...



       2016GITC上海站干货分享

7月1日,在GITC全球互联网技术大会云专场论坛中,金山云视频云研发部技术总监郝明非带来了题为《金山云直播服务架构探索》的主题演讲。在演讲中他分享了金山云作为视频云第一平台在直播领域的技术探索,并表示移动直播的火爆推动了视频新技术的研发,经济需求成为拉动技术进步的首要推动力。



直播移动化带来技术挑战再度升级


短短半年时间,大家都看到了移动直播的火爆,作为技术人员已经被卷入到这样一种火爆的经济现象之中,经济需求成为了拉动技术进步的动力。

这里希望和大家分享这段时间金山云在直播服务架构上的探索心得。
移动直播的以下特点促使行业爆发增长:

• 互联网进入直播时代,移动化拓展了直播的维度;

• 直播满足用户猎奇、窥视、社交等各种心理特性;

• 从秀场到全民直播,泛娱乐正式进入直播时代;

• 全民直播,开启600-1000亿市场空间。

市场发展超预期带来了对技术的挑战。面对如此瞬息万变的市场,快速接入、零技术门槛成为很多客户关心的需求,也是我们构建一站式服务的动力。

秒开、无卡顿、延时可控都很好理解,即点即看、流畅和及时性也成为关系到用户体验的关键点。

很多视频行业的从业人员都有点播服务的构建经验,为什么说直播业务带来的这些技术需求是一次次新的挑战呢?从技术上看,直播区别点播的最大特点就是视频来源不再稳定。

传统点播业务文件已经生成,提前传入云存储等待分发,上传过程中出现慢速、抖动,甚至出错重传都是可以忍受的,不会直接造成观看体验变差。

但到了直播行业,上传的质量直接决定了观看的体验,边传边看,中间只有短短几秒的缓存,移动直播领域上传的质量如何呢?



分享两个数字:77%和69%,每天77%的主播都经历过上传的慢速,69%的主播经历过由于慢速导致的推流丢帧。这个数字是针对行业内推流质量统计得到的。

在内容不稳定的情况下,如何定卡顿指标?同时另一个话题,如何证明自己做到了?延时如何可控,如何分析出都是哪个环节造成了延时?

我希望分享的不仅是金山云做了什么,还有如何在架构演进过程中充分利用数据定位问题,指导优化方向。


推流、播放双管齐下降低卡顿


目前,不少企业停留在使用基础直播服务的阶段,基础的直播服务如上图所示,只能实现核心的流媒体服务。他们是怎么做的呢?

首先,管理好直播流的生命周期。为了实现回放和监管,很多还会搭配录像和截图服务,分发可以找第三方的CDN进行。最后,推流和播放可以找到开源的SDK完成。基本功能都OK了,上线。

可是,这样的服务能解决刚才提到的各个问题吗?应该是不能。首先,该方式没有针对流畅性的优化设计;其次,没有量化的指标监控,无法清晰感知服务质量。
针对这一点,金山云是如何实现的呢?金山云的直播架构如上图:

以流媒体服务为核心,引入接入层,可以便捷快速开发客户定制需求而不影响核心功能的稳定性。同时提供了丰富的配套服务,以及视频、图像算法的支撑。作为端到端一站式的服务提供商,金山云在推流和播放SDK上投入了很大精力,每个模块都有数据分析。依托金山云的基础服务构建了我们的直播框架。
为了解决刚才提到的推流端网络不稳定的问题,我们引入了网络自适应算法:

• 网络抖动后快速调整编码码率;

• 实时监测预测网络质量;

• 尽可能保持编码码率和网络速率吻合;

• 稳步提升至高位码率。
主播推送了高清的视频到网络上以后,播放端不一定都能无卡顿播放。直播转码可以实现多码率适配,提供播放端的流畅体验。金山云首家提供的H.265商用编解码方案可以在同清晰度情况下降低50%的码率,减小卡顿风险的同时降低成本。
 
在推流和播放两个环节都在为低卡顿输出技术保障的同时,整体服务的保障当然也是必须的,多源站就近接入、机房互备,为直播服务提供高可用保障。


数据感知 服务效果透明化
 


前面分享了金山云在降低卡顿问题上所做的努力,这时回到我最初提的问题,如何评估我们是否真的在一次次改进中取得了成效,数据分析系统这时就发挥作用了。全链路每个模块都在向日志收集分析平台提供数据。
 
利用这些数据最初级的场景,就是做好流生命周期的关联,从推流到源站到CDN,再到播放端,对于单个流哪个环节出了问题,都可以从各个模块的曲线图中看出问题。这两条曲线分别代表理论的码率和实际的码率,差值就体现了网络的抖动情况,两条曲线越接近说明流的卡顿越小。
除了单个流的问题定位,我们还可以让数据发挥更大的作用,做全链路的质量分析,我们需要选择一个指标。指标选择的标准是:

• 所有模块适用;

• 度量衡一致;

• 体现真实卡顿趋势。

我们在实际应用中选择了一段时间内所有流的延迟波动作为评价标准,当然只要符合这些标准的指标都是可以尝试使用的。

可以使用此值完成以下分析:

• 查询某客户在各模块上的卡顿情况,方便客户了解我们的服务质量;

• 监控发现业务问题;

• 地域、运营商网络质量监控。

这样我们是否达到播放卡顿预期就是透明的和可衡量的,哪里出现问题也是可以便捷分析的。

在全链路数据的指导下,我们的技术在不断演进,未来不仅能够满足如此火爆的市场需求,还能够做出更大的贡献,反过来推动直播市场的繁荣。

云行业速递

提供最新鲜最有趣的云资讯

足不出户了解云行业最新动态

合作请联系:qingyunhangye@126.com


    关注 云行业速递


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册