优酷智能档的设计、实现和应用
作者| 阿里文娱高级无线开发工程师 去疾
数据源处理模块(Source Module):负责理解播放服务传递下来的视频信息,都有哪些清晰度,多少个分片,去哪里下载;解复用(demuxing)拿到需要进一步处理的音频、视频数据包;
解码模块(Decoder Module):对音频、视频等流的数据包进行解码,得到一帧帧的图像数据 和声音数据;
消费者模块(Consumer Module):同步音频、视频流,通过对应设备渲染出来。
智能档和播放器内核最主要的交互就在数据源处理部分,因此也就有了下面这张图。
策略引擎框架:支持多种策略实现运行的一个接口/环境/容器,每种算法策略实现根据从播 放器内核和网络环境信息等输入,给定一个清晰度选择的输出;
数据链路闭环:客户端决策信息埋点上报,云端数据分析处理,优化后的配置更新或模型 下发;
其中,策略框架及各种清晰度选择算法策略实现是整个智能档的核心灵魂,策略框架提供 了一个平台,目前优酷的智能档使用 ABTest 的方式支持了从基于各项离散规则到基于强化学 习神经网络模型的多种算法策略的实现,这些算法可以根据配置或模型下发动态调整算法参数, 互相对比优化,互相补充。
因此,智能档在起播阶段就尽力收集影响数据下载和可能造成卡顿的所有因素,在起播第 一片就给用户最合适的清晰度、最优的播放体验。目前,作为起播参考的因素有网络信号强度、 连续播放场景下的上一次播放清晰度、到服务端的请求耗时等。一段简单的伪代码描述如下:
下面是客户端运行神经网络模型来进行决策的一个示意图。
从统计数据上看,与传统的清晰度相比,在卡顿率(卡顿频次与播放次数的比值)稳定低于 720P 的前提下,720P 及以上的播放时长占比不低于 80%;在移动蜂窝网络条件下,智能档和传统清晰度相比,能够避免掉近 50% 的卡顿发生;
主观体验变化,随着半年来的迭代优化,从用户的反馈上来看,也从最初的不太认同,到逐步接受,甚至缺“智能档”不可;
最后,再以几个点对本文做一个小结。 优酷“智能档”最终展现给用户的是客户端上的一个功能点,但从技术角度上来说,这是贯穿了从视频生产到播放服务,整合了数据的收集、监控、分析,配置的实时下发和模型的动态更新的体系化工程,“智能档”需要这样的平台上,才能做到真正有效的快速试错和优化迭代;
在智能档码率选择的算法策略上,学术界已经有非常多的基础理论,但由于实际播放场景 的多方面体验要求、每个平台的自身的特点等原因,这些理论到直接应用还存在距离,需要通 过实践来填补和改进;
以上是对优酷智能档技术实践的介绍,目前智能档也在持续优化当中,相信随着场景的丰富、新技术的应用,将来会为用户带来更好的播放体验。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
