自2019年8月,分布式系统发布以来,至今已对外开放了HUAWEI HiAI、媒体、安全、UI、互联互通和系统这6类基础能力,经过几个月的发展与积累,分布式能力实际应用效果如何,反馈又怎么样?
11月19日,在软件绿色联盟开发者大会分布式多终端协同分论坛上,优酷资深技术专家彭卫在《优酷视频投屏场景优化》议题中,就优酷视频应用的互联互通多屏协同能力做了分享。他还将促进投屏体系建设的秘密归纳为修内功、做兼容、找伙伴三点,这具体是什么意思呢,阅读本文你将获取答案。
多屏协同能力向上对业务提供API主要可以分为镜像协同、异源协同、反向控制三种形式。镜像协同是指手机和电视属于完全的镜像状态,所见即所得;异源协同一般应用于观看视频,大屏用来看视频,手机可以单独玩;再有就是反向控制,主要用于工作场景,投屏后通过键盘、鼠标可以实现相互控制。
优酷视频可以根据观看视频场景进行投屏推荐,在没有大屏环境下使用手机观看,当回家检测到有大屏时,会自动提醒切换到大屏,实现大小屏同时观看,也可以选择关掉手机只用大屏观看。如果想用手机做其他互动,可以根据互通信息提醒选择分布式异步操作,实现异源协同,这个互动流程已经非常完整,为用户提供舒适的使用体验。
优酷视频从2013年天猫魔盒开始就逐步探索更好的用户体验,借助阿里TV助手研发出镜像控制、远程协助、扫码投屏等一系列功能。并在2017年将阿里多屏协同技术和优酷投屏技术进行了融合,升级了优酷投屏能力。后来为了更好的解决投屏上的问题,又研发出了天猫魔投。而随着技术与用户需求的进步,现在优酷已将投屏SDK能力聚合到一起,并输出给合作伙伴。
投屏全链路会经过四个主要的设备:手机、路由器、电视机和CDN。手机是总控端,负责协议的实现以及主流程的控制;路由器则负责最重要的组播转发,是组播发现的最关键的位置;电视负责播放和整个投屏协议接收;而CDN提供整个资源。在这个链路中最容易出问题的是哪个环节呢?第一是路由器,由于路由器存在不确定性,可能出现组播失灵或不支持组播的情况,这时投屏失败。第二就是电视机,因为电视机设备款式多样且投屏标准实现不统一,加之电视的新老版本同时存在,这个过程中极容易各种问题。
为了更好的解决上述问题,优酷团队对投屏的技术链路做了拆解,将其分为投屏前,投屏中和投屏后三个阶段。投屏前是发现阶段,主要靠组播;投屏中是指投屏指令和地址的传递;投屏后,是指整个播放链路。
在这三个阶段中,最重要的是组播发现环节,它是组播的Search和回应。这个过程最重要的技术的指标是发现率(发现的设备/用户发起投屏次数)。那怎么提升发现率呢?首先是修内功,也就是提升组播的性能,以应对不同频率的电视机组播,在局域网中不断请求时可能造成的路由器和客户端不能负载的情况。其次是做兼容,也就是兼容所有对端的电视机,比如在电视端它的编码使用的是非标的编码,只是做了简单的转换,这种情况必须要识别它,并且对它制定一个专门的策略。
在发现环节,还有一个重要因素路由器。路由器有时会出现TCP可连接、用户可上网,但投屏失败的问题,为应对这个问题,可以通过服务器进行发现。将SDK放到电视机上,当手机端和电视端同时注册到服务器时,可以借助服务器发现局域网的设备,再加上天猫魔投充当热点的作用,最终实现投屏。通过这些举措,投屏发现环节的成功率得以提升。
投屏环节也较简单,主要可以概况为三部分:发送地址、播放、状态。这个环节中,主要的衡量目标是投屏成功率(播放次数/发起投屏次数),这里的播放次数经历了一个演进。最初是电视返回播放状态即视为成功,有时电视返回播放但用户投诉并未播放,导致判断失误。所以将播放的衡量指标调整为只有返回变化进度,才认为投屏成功。投屏率定义清楚了,那怎样提高投屏的成功率呢?最重要的还是做好兼容性。
投屏环节中要求手机端和电视端都要做好兼容。这里通过两个例子来说明:场景一:通过用户反馈,发现有部分品牌电视无法正常投屏,通过原因分析发现是视频格式不兼容,只支持MP4格式。这时候就联合相关团队对所需内容进行了MP4转封装编码,放到CDN上,满足用户投屏播放需求。场景二:有一款电视,收到投屏地址后,做了url encode转化,转化后影响到了CDN鉴权和对应逻辑。通过与CDN团队沟通,遇到这类案例后再次转码回去,保证投屏的成功率。
优酷投屏技术体系主要分为协议层、适配层、SDK层、业务层、数据层五层。协议层中封装了投屏协议和优酷自有的对BT、WIFI等协议的封装;适配层针对不同的品牌、设备,还有它的版本和芯片做各种精细化的策略,基于各种经验的沉淀;SDK层可以为上层业务服务;业务层就是指像优酷这样的业务;而数据层主要起到错误码的全程跟踪和线上问题实时报警的作用。
为了更好的保证功能的稳定有序,在日常的迭代中履行着一个流程。当收到线上错误码或用户问题反馈后,会进行数据分析,这时根据用户反馈找对应的设备,根据实际情况进行采买然后进行试验复现问题。由于之前发现的设备兼容性问题可能已经被设备商修复,之前为了适配而做的修改反而会导致视频无法播放,所以在做适配时增加了很多线上监控和开关,根据设备修复情况而选择开关状态。接下来会进入到实验室验证阶段,这时需要准备数百台电视机、机顶盒、模式设备等试验设备,经过实验室认证后,再发到线上进行进一步的监控。
想要优酷投屏技术体系更好的发展,除了上文中提到的修内功、做兼容外,还有一个重要的策略就是找伙伴。我们整个SDK已经开放给合作伙伴,手机端ACast SDK接入过程非常简单,都是一些标准的接口。而电视端更为简单,创建初始化服务即可。
对于投屏技术来说,最重要的一点就是稳定流畅的体验,这里可以定义五个重要指标:
· 发现成功率99%;
· 投屏成功率99%;
· 投屏起播时间在1s以内;
· 卡顿率小于1%;
· 镜像时延50ms。
除了稳定流程,标准的融合和打通也同样重要,投屏涉及到的设备和功能很多,对应的标准也很多,只有标准融合才能保证用户多设备的互联。还有一点就是无缝场景化互联,随着5G的到来,各种各样的智能手机越来越多,各种屏幕也会无处不在,需要各个设备厂商加强合作,让各个使用场景能够真正联通起来,打造无缝流转衔接的用户体验。