基于WebRTC的互动直播实践

640?wx_fmt=jpeg


互动直播已经逐渐成为直播的主要形式。映客直播资深音视频工程师叶峰峰在LiveVideoStackCon 2018大会的演讲中详细介绍了INKE自研连麦整体设计思路、如何基于WebRTC搭建互动直播SDK以及针对用户体验进行优化。本文由LiveVideoStack整理而成。


文 / 叶峰峰

整理 / LiveVideoStack


大家好,我是叶峰峰,来自映客直播,从事实时音视频的开发工作大概有七八年时间了,在加入映客后,也参与了映客实时互动直播的开发过程。本次分享主要介绍映客互动直播开发过程中遇到的一些问题,以及对直播场景下互动直播的一些优化。


640?wx_fmt=png


本次分享内容可以分为四个部分。第一部分,简单介绍互动直播的发展;第二部分,介绍映客互动直播SDK是如何从0到1构建起来的,并从推流端和播放端两方面来介绍对它进行的优化;第三部分,介绍配合互动直播体系的一些监控和运营相关的内容,以及我们如何依赖于这种体系解决线上的问题;第四部分,总结和展望,主要是对下一步工作的思考。


一、互动直播发展简介


640?wx_fmt=png


1、CDN直播


CDN直播指的是单个主播使用RTMP协议进行推流的直播形式。主播端推流使用的是基于TCP的RTMP协议,直接推流到我们的CDN源站,观众端通过CDN的边缘节点进行拉流和播放,整条链路都是使用的TCP,所以技术是比较成熟的。虽然这种形式便于我们的业务推广,但同时也存在着直播形式单一、缺少互动话题的缺点。为了解决CDN直播缺乏观众和主播间交互的问题,进而引入了互动直播。


2、互动直播


640?wx_fmt=png


互动直播一般是指主播和主播之间通过RTP来进行推拉流的方式,它的形式比较多样、话题点也非常丰富。与观众互动的方式除了评论区互动外,还可以通过音频、视频连麦的方式使观众加入到直播过程中与主播面对面进行交流。但是,互动直播的缺点是对传输时延比较敏感,并且整个直播系统的实现比较复杂。在CDN直播里面,只需要将流推到CDN源站就可以了,而互动直播既不仅要把我们的流推到连麦服务器,还要解决主播与主播之间拉流进行互动播放的问题。


3、主播PK介绍及CDN vs 互动


640?wx_fmt=png


接下来,我们重点看一下互动直播中比较特殊的一个场景即主播PK场景。连麦场景中的所有观众都属于当前某个主播的观众,辅麦没有自己的观众,而直播PK场景与之不同。在PK开始之前,两边的主播都有各自的观众,所以在播放端就需要针对PK场景进行一些特殊的优化。虽然我们的互动直播已经加入了观众与主播之间通过音频、视频进行沟通的渠道,但并没有形成一个非常有效的协作,不能很直接的引起观众对平台做贡献的行为,如送礼物等。因此,在PK发起的过程中,观众可以通过送礼物来影响PK的整个 过程。我们可以看到上图右侧所展示的主播1v1PK场景中,每个主播会显示有一个血条,当观众送礼时血条则会增长,结束时哪方观众送的礼物多就会胜利。这样一来,就能让观众更多地参与到直播的过程中,而且是通过送礼物的方式。如果大家最近观看过映客直播,就会看到我们最近在开展PK排位赛的业务。PK排位赛业务指的是在PK的过程中,当有人第一个给主播送礼,就会在两个主播中间展示一个首杀的动画特效,使得用户获得一种不一样的参与感。而且在PK结束时,会在胜利一方的观众里选出对本场胜利贡献最多的观众称之为MVP,同样会是在两个主播中间的位置展现一个三秒的动画特效。目前来讲,PK业务是我们整个互动直播中最有价值的一个业务场景。


介绍完CDN直播和互动直播后,接下来把它们进行一个对比。从主播端来看,在业务形式上,CDN直播一般是单个主播的,而互动直播是多个主播的。在传输协议上,CDN直播主播端是使用基于TCP的RTMP协议来推流的,而互动直播一般是使用基于UDP的RTP协议来推流的。由于互动直播是基于UDP的,所以我们还需要考虑应用层的丢包重传问题。在实现复杂度上,CDN直播是相对较低的,而互动直播实现复杂度相对较高。从观众端来看,都是使用HTTP-FLV/RTMP来进行拉流播放,且都是基于TCP的。但是,CDN直播只有一路流,而互动直播考虑到直播场景的卡顿率或者一些指标的体验优化,我们目前使用的是主播多流的方式。多个主播之间可能使用的是不同CDN分发的多流,互动直播在观众端还会考虑一些多流间同步的操作。


4、直播系统架构拓扑


640?wx_fmt=png


下面简单介绍一下CDN直播和互动直播的架构拓扑。对于CDN直播,它是直接

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值