自从2016直播元年开始,各种直播平台涌出。实时音视频直播开始进入大众的生活,那么在经历了1年后,随着互动连麦,狼人杀等直播新玩法等崛起,人们对直播的互动性要求更高。那么以为着需要有低延迟直播的解决方案,才能满足人们的诉求。所以,直播技术也在随着人们的诉求进行更新换代。
Web直播技术基础
这里,我们先来看一些直播技术的基础知识。我们在web,客户端看到的音视频画面,是怎么从数据流到呈现出画面,播放出声音的呢?具体过程可以看下面流程。
常见的协议格式:
这里可以看出,不同协议都有各自的优缺点。应该结合自身业务特点选择。 其中,前3个协议都是基于TCP协议的,如果要想做到实时性强,抗网络抖动,由于TCP协议的限制,很难做到。 然后最后的RTP协议是基于UDP传输,就可以做到。但是怎么去保证传输的可靠呢?RTP协议一般还需要引入其兄弟协议RTCP来配合。
什么是WebRTC
那么我们这次将介绍的WebRTC在流媒体传输,就是采用了在RTP/RTCP协议基础上的安全协议SRTP/SRTCP。这里可能有人会问,WebRTC究竟是什么呢? WebRTC是一个Google免费开源的项目,其目的是为浏览器和移动应用程序提供实时通信(RTC)功能。可以理解为,WebRTC就是一套浏览器的JavaScript API,通过这套API,可以开创性地快速实现浏览器之间的实时音视频通讯,数据传输功能。
WebRTC架构:
WebRTC核心API
- MediaStream: 从客户摄像头或麦克风获取的媒体流对象。
- RTCPeerConnection: 连接对象,用于连接建立,媒体流传输。
- RTCDataChannel: 数据传输通道。
那么,关于WebRTC在直播场景中,应该怎么去应用呢?在实际实践过程中,又遇到了什么挑战呢? 在2017年9月16日的IMWebConf 2017前端大会中,来自腾讯公司的讲师陈超将为你带来腾讯课堂在WebRTC直播应用的实践与挑战主题分享!
陈超 IMWeb团队成员 主要负责腾讯课堂web前端相关业务的开发,架构设计。对实时rtc音视频技术有一定了解,对WebRTC直播技术有相关的实战经验以及独特见解。