作者:张凌柱(以绳)
本文为《优酷播放黑科技》系列文章第二篇,第一篇文章可点击优酷播放黑科技 | 自由视角技术体验优化实践进行查看。欢迎点击左上角【阿里巴巴移动技术】关注我们,点关注不迷路 ~
直播内容区别于点播,因其实时性、强互动性的特点吸引着用户,在观看的同时还可以同步进行点赞、评论、打赏等互动行为。此类互动主要集中在用户的社交行为,而内容型的互动也随着点播中的“互动剧集”的出现而映入大众的眼帘,用户可以在剧情进展的关键节点选择角色执行不同的行为继而进入到不同的分支剧情中。同样直播方向上的内容型互动也在被不停的探索和应用中,其中一个例子就是同时进行多个视角的直播,允许用户切换选择某个特定的视角观看直播内容。尤其在中大型的直播活动中(例如街舞、欧冠等),粉丝向比较明显(明星、球星),如果能提供多个观看视角或者提供某个聚焦视角供切换选择,在用户体验上无疑能有很大的提升。
基于此,经过研究与探索,最终基于WebRTC落地实现了低延迟高清晰度的多视角直播能力,并在《这!就是街舞》的年度总决赛正式上线应用。效果视频如下:
视频可点击查看:优酷播放黑科技 | 基于WebRTC实现的直播"云多视角"技术解析
方案选型
能否实现低延迟切换、高清晰度、全机型覆盖的用户体验是最终决定采用哪种技术方案的重要衡量标准。业内常用的应用层协议包括:
- HLS(含LHLS)
- RTMP
- RTP(严格来说RTP介于应用层和传输层之间)
其中,RTMP因其优缺点(低延迟但易被防火墙拦截)被确定用于直播推流,本文暂不多作介绍,下面我们主要针对拉流过程进行分析。根据端上拉流个数可以将实现方案分为:
- 单路流伪多视角直播:基于HLS协议,端上同一时间仅拉取一路流,切视角需要重新切流地址起播;
- 多路流多视角直播:基于HLS协议,端上同时拉取多路流进行解码渲染,切视角不需要切流地址起播;
- 单路流多视角直播:基于RTP协议,端上同一时间仅拉取一路流,切视角不需要重新切流地址起播。
横向对比
对处于劣势的特性作标红处理后得到的表格:
方案 |
协议 |
同时预览 |
无缝切换 |
码率 |
端性能负担 |
增量成本 |
单路流伪多视角直播 |
HLS |
否 |
否 |
普通 |
普通 |
无 |
多路流多视角直播 |
HLS |
是 |
是 |
高 |
高 |
< |