QOS(即Quality of Service,服务质量)主要指网络环境下服务满足用户的程度,在视频服务的语境下也可认为是Quality of Streaming,即流媒体服务的质量。通常,QOS可以由一系列指标表达,如传输的速度、响应时间、发送顺序、正确率等。就视频服务来说,QOS由多项约定俗成的技术指标构成,包括播放成功率、错误率、Re-buffer(卡顿)次数和时间、起始时间、快进响应时间、视频码率、延迟等。
通行的QOS指标大致可分为两类:
一类用于衡量用户可在多大概率上得到服务,如播放成功率和错误率;
另一类描述了用户所获取到服务的水平,如卡顿次数、时间、起始时间、快进时间、视频码率和延迟
下面是QOS指标定义(图片来自Conviva官网)
当定义了关键的QOS指标与优先级之后,视频服务可以通过传统的方式(如本地环境、测试环境测试的方式)进行初始的验证,使用如Evalvid这样的视频质量评价工具,配合NetworkSimulator类的网络模拟工具,可用于小规模测试,提供丢包率、延迟、抖动等底层指标。
在真实的在线视频服务中,大多数由用户不同地理位置、设备种类、软件版本、运行环境等导致的问题很难在开发环境中复现。在线视频服务通常在各个客户端平台上实现对QOS状况的监测,通过SDK发送回,并由后端服务进行折算和统计。
当服务的用户量达到一定程度时,需要大数据技术区分实时和批量数据,并在存储之前进行预处理。QOS数据由后台服务整合后将被应用于图表呈现、统计报告、分析优化、监控报警等用途,是产品、开发、运维、数据分析等团队依靠的基础。
为更好地分析特定问题,收集关于某一用户播放过程的全部信息并按时序加以呈现,可以有效地帮助理解因果关系,信息将包括用户行为、执行时间、下载计时、码率切换记录、错误类型、CDN节点位置、服务器日志甚至一些计算的中间结果,将可有效地推断例如开始播放较为缓慢或者某次卡顿如何发生的原因。
通过QOS数据以及扩展的信息,开发者就可以自由地进行优化,可以考虑的优化角度包括架构设计、编码选择、流媒体协议、自适应算法、连接与卡顿逻辑、客户端软件设计。