优酷播放黑科技 | 基于WebRTC实现的直播“云多视角“技术解析

作者:张凌柱(以绳)

本文为《优酷播放黑科技》系列文章第二篇,第一篇文章可点击优酷播放黑科技 | 自由视角技术体验优化实践进行查看。欢迎点击左上角【阿里巴巴移动技术】关注我们,点关注不迷路 ~

直播内容区别于点播,因其实时性、强互动性的特点吸引着用户,在观看的同时还可以同步进行点赞、评论、打赏等互动行为。此类互动主要集中在用户的社交行为,而内容型的互动也随着点播中的“互动剧集”的出现而映入大众的眼帘,用户可以在剧情进展的关键节点选择角色执行不同的行为继而进入到不同的分支剧情中。同样直播方向上的内容型互动也在被不停的探索和应用中,其中一个例子就是同时进行多个视角的直播,允许用户切换选择某个特定的视角观看直播内容。尤其在中大型的直播活动中(例如街舞、欧冠等),粉丝向比较明显(明星、球星),如果能提供多个观看视角或者提供某个聚焦视角供切换选择,在用户体验上无疑能有很大的提升。

基于此,经过研究与探索,最终基于WebRTC落地实现了低延迟高清晰度的多视角直播能力,并在《这!就是街舞》的年度总决赛正式上线应用。效果视频如下:

视频可点击查看:优酷播放黑科技 | 基于WebRTC实现的直播"云多视角"技术解析

方案选型

能否实现低延迟切换高清晰度全机型覆盖的用户体验是最终决定采用哪种技术方案的重要衡量标准。业内常用的应用层协议包括:

  • HLS(含LHLS)
  • RTMP
  • RTP(严格来说RTP介于应用层和传输层之间)

其中,RTMP因其优缺点(低延迟但易被防火墙拦截)被确定用于直播推流,本文暂不多作介绍,下面我们主要针对拉流过程进行分析。根据端上拉流个数可以将实现方案分为:

  • 单路流伪多视角直播:基于HLS协议,端上同一时间仅拉取一路流,切视角需要重新切流地址起播;
  • 多路流多视角直播:基于HLS协议,端上同时拉取多路流进行解码渲染,切视角不需要切流地址起播;
  • 单路流多视角直播:基于RTP协议,端上同一时间仅拉取一路流,切视角不需要重新切流地址起播。

横向对比

对处于劣势的特性作标红处理后得到的表格:

方案

协议

同时预览

无缝切换

码率

端性能负担

增量成本

单路流伪多视角直播

HLS

普通

普通

多路流多视角直播

HLS

<
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WebRTC是一种实时通信技术,可以在网页浏览器之间建立点对点的音视频通信连接。通过使用WebRTC技术,可以实现基于H5的直播功能。 首先,H5是指使用HTML5、CSS3和JavaScript等技术开发的网页。WebRTC在H5中的应用主要是通过调用浏览器提供的API来实现。 在实现WebRTC的H5直播中,需要借助一些第三方库或框架,如PeerJS、SimpleWebRTC等。这些库可以简化WebRTC的应用开发过程。 具体实现直播功能的步骤如下: 1. 前端浏览器通过JavaScript调用浏览器提供的getUserMedia API,获取用户的音视频流。 2. 使用WebRTC API创建一个本地的Peer对象,该对象代表当前用户的浏览器。 3. 将获取到的用户音视频流添加到Peer对象中,并将其发送给后台服务器。 4. 后台服务器接收到音视频流后,会将其转发给其他观众的浏览器。 5. 其他观众的浏览器会通过WebRTC API创建一个远程的Peer对象,代表其他用户的浏览器。 6. 远程的Peer对象会将接收到的音视频流添加到自己的浏览器中,实现实时的音视频播放。 通过以上步骤,就可以实现基于H5的WebRTC直播功能。这种方式能够实现低延迟的音视频传输,提供更好的用户体验。同时,由于是点对点通信,不依赖其他中间服务器的转发,可以减少服务器资源的占用。 当然,在实际开发中还需要考虑一些其他方面,如流媒体服务器的选择、网络传输优化和错误处理等。但总的来说,WebRTC的H5直播实现相对较为简单,可以为用户提供更加流畅的直播体验。 ### 回答2: WebRTC是一种实现实时音视频通信的开放标准。H5是指HTML5,是一种用于制作网页的标准技术。 利用WebRTC技术实现直播H5,可以通过以下步骤实现: 1. 前端页面开发:使用HTML5、CSS和JavaScript等前端技术,创建一个具有直播功能的网页。 2. 获取用户媒体设备:通过getUserMedia API,获取用户的音视频流。 3. 媒体传输:使用RTCPeerConnection API,通过UDP或TCP协议将音视频流传输到服务器。 4. 服务器处理:服务器接收到音视频流后,可以进行一些处理,例如转码、压缩等。 5. 观众接入:观众可以通过浏览器访问直播网页,前端通过JavaScript技术与服务器建立连接,接收服务器传输的音视频流进行播放。 6. 直播控制:前端页面可以添加一些控制按钮,例如开始/停止直播、切换摄像头、静音等功能。 WebRTC实现直播H5的优点是实时性好,延迟较低,且不需要安装相关插件。同时,它的开放标准使得开发者可以根据自己的需求进行自定义开发。 当然,在实际开发过程中还需要考虑其他方面的问题,例如安全性、性能优化等。但总体来说,利用WebRTC技术实现直播H5可以为用户提供更便捷、高效的直播体验。 ### 回答3: WebRTC是一种通过浏览器实时通信的技术,而H5是指HTML5标准,可以实现丰富的多媒体功能。通过结合WebRTC和H5技术,可以实现直播功能。 首先,使用WebRTC可以获取用户的音视频流。通过浏览器的getUserMedia API,可以访问用户的摄像头和麦克风,获取实时的音视频数据。这样就可以实现直播主播的视频流。 接下来,使用WebRTC的RTCPeerConnection和RTCDataChannel API可以建立起实时的点对点通信,实现主播和观众之间的双向通信。主播将自己的音视频流发送给观众,而观众也可以将自己的音视频流发送给主播或其他观众。 同时,H5提供了丰富的媒体处理功能。使用H5的Canvas技术,可以将获取到的视频数据渲染到网页中的画布上,实现视频的播放。使用H5的Audio标签,可以将获取到的音频数据播放出来。 此外,H5还提供了一些控制标签和API,如video、audio和MediaSource等,用于实现直播的控制和处理。 综上所述,通过WebRTC实现直播 H5,我们可以借助WebRTC获取实时的音视频数据,并通过H5技术实现音视频播放和处理,从而实现直播功能。这样,用户可以通过浏览器观看直播,无需安装额外的客户端软件,提供了更加便捷和灵活的直播方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值