前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >全民直播时代——基于WebRTC开发实时通信服务

全民直播时代——基于WebRTC开发实时通信服务

作者头像
IT大咖说
发布2018-04-04 10:06:51
1.9K0
发布2018-04-04 10:06:51
举报
文章被收录于专栏:IT大咖说IT大咖说

摘要

本次分享基于 WEBRTC 技术的实时通信服务的开发经验,希望通过这次分享能让大家对这方面更有兴趣。

视频内容

什么是互动直播?

互动直播是多路音视频以及数据实时通信的解决方案。

首先看一下我们又拍云自己的应用场景。又拍云是由杭州研发总部加上北京、上海、广州等多家分公司组成的。我们的管理层每周一上午有个每周例会,我们很需要一个简单可靠的远程会议系统。

在过去,我们用的是传统的电话会议硬件,复杂难用,价格不便宜,而且效果也不理想。

现在,我们只需要一台笔记本电脑外加一个高清摄像头就可以了,不需要任何配置、安装任何插件。

互动直播的特点

互动直播和传统直播相比的本质的区别是延时。

与传统的直播相比,互动直播赋予了参与直播的每一个成员互动交流的能力。因此,也对实时性、抗回声要求更高。

在视频会议、远程教育、远程咨询、视频社交、互动游戏等很多场景往往只能选择实时性更高的互动直播技术。

为什么选择 WEBRTC?

WebRTC是一个开源,免专利费的项目,大大节省了我们的开发时间成本。

WebRTC由Google 主导,技术非常先进。

各大浏览器以及终端逐渐加大对 WebRTC 技术的支持。

WEBRTC OVERVIEW

WebRTC全称是 Web Real-Time Communication。WebRTC 并不是一个单一的协议,而是一个标准,包含一堆协议和API。

WebRTC通过提供简单易用的JavaScript APIs让浏览器拥有了 P2P音视频和数据分享的能力,同时不需要安装任何插件。

WEBRTC STANDARDS AND HISTORY

2010年5月,Google花了$68.2million收购了GIPS,一年后Google就开源了WebRTC项目。

WEBRTCW3C Working Group:浏览器API;

RTCWEBIETF Working Group:协议、数据格式、安全、P2P等。

WebRTC并不是一个孤立的协议。起初是为了浏览器与浏览器之间实时通信,也可以通过信令协议对接现有的SIP客户端、PSTN 网络、移动端等。

WEBRTC的核心组成

音视频引擎:OPUS、VP8/VP9、H264;

传输层协议:底层传输协议为UDP;

媒体协议:SRTP/SRTCP;

数据协议:DTLS/SCTP;

P2P内网穿透:STUN/TURN/ICE/Trickle ICE;

信令与SDP协商:HTTP/WebSocket/SIP. Offer Answer模型。

我们的实时通信底层平台UPRTC

传统的 WebRTC 应用模式是 P2P 的,我们改造成服务器中转的模式。

完全分布式系统, 部署到全国所有边缘节点,通过我们的内部加速网络加速。

网络拥塞自适应控制, 较强的弱网适应能力。

针对底层开源组件进行优化改造,支持高并发。

灵活高效的业务信令,支持对敏感信令进行鉴权。

utun解决跨地区,跨ISP延迟高且不稳定等网络问题。

覆盖200多个边缘节点,4000多台服务器;覆盖3个大运营商,2个小运营商。

uprtc实现媒体接入,接入Web端与移动端。

基于我们底层 UPRTC 平台的第一个项目——上会

我们选用的编码格式H.264 + Opus。修复WebRTC内核 iOS 端有音频处理过度消耗CPU的BUG,以及修复WebRTC的core音视频不同步的BUG。Android端H.264编码不支持高通以外芯片硬解码。客户端解码能力有限,总会话人数需要控制在8人以内。服务器端需加入码率自适应算法,自动根据参与人数控制总带宽在2Mbps以内。美颜、滤镜接入会增加处理延时,所以对此性能要求非常高。

我今天的分享就到这里,谢谢大家!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IT大咖说 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档