前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC技术详解

WebRTC技术详解

作者头像
童欧巴
发布2021-05-17 11:03:16
3.6K0
发布2021-05-17 11:03:16
举报
文章被收录于专栏:前端食堂

随着4G的普及和5G技术的应用,实时音视频技术正在蓬勃发展。实时通信技术已经渗透到各行各业,支撑着人们的日常生活。在互联网领域,花椒、映客等直播平台吸引了大量的用户;在教育领域,通过实时直播技术搭建的“空中课堂”惠及全球数亿学生;在医疗行业,随着电子处方单纳入医保,互联网看病、复诊正在兴起,地域之间医疗资源不均衡的问题被实时直播技术逐步消除。

在WebRTC诞生之前,实时通信技术非常复杂,想获得核心的音视频编码及传输技术需要支付昂贵的专利授权费用。此外,将实时通信技术与业务结合也非常困难,并且很耗时,通常只有较大规模的公司才有能力实现。

WebRTC的出现使实时通信技术得以广泛应用。WebRTC制定、实现了一套统一且完整的实时通信标准,并将这套标准开源。这套标准包含了实时通信技术涉及的所有内容,使用这套标准,开发人员无须关注音视频编解码、网络连接、传输等底层技术细节,可以专注于构建业务逻辑,且这些底层技术是完全免费的。WebRTC统一了各平台的实时通信技术,大部分操作系统及浏览器都支持WebRTC,无须安装任何插件,就可以在浏览器端发起实时视频通话。

什么是WebRTC

WebRTC(Web Real-Time Communication)是一个谷歌开源项目,它提供了一套标准API,使Web应用可以直接提供实时音视频通信功能,不再需要借助任何插件。原生通信过程采用P2P协议,数据直接在浏览器之间交互,理论上不需要服务器端的参与。“为浏览器、移动平台、物联网设备提供一套用于开发功能丰富、高质量的实时音视频应用的通用协议”是WebRTC的使命。

WebRTC技术最初为Web打造,随着WebRTC自身的演进,目前已经可以将其应用于各种应用程序。

WebRTC的技术架构

从技术实现的角度讲,在浏览器之间进行实时通信需要使用很多技术,如音视频编解码、网络连接管理、媒体数据实时传输等,还需要提供一组易用的API给开发者使用。这些技术组合在一起,就是WebRTC技术架构,如图1所示。

图1 WebRTC技术架构
图1 WebRTC技术架构

WebRTC技术架构的顶层分为两个部分:

一部分是Web API,一组JavaScript接口,由W3C维护,开发人员可以使用这些API在浏览器中创建实时通信应用程序。

另一部分是适用于移动端及桌面开发的libwebrtc,即使用WebRTC C++源码在Windows、Android、iOS等平台编译后的开发包,开发人员可以使用这个开发包打造原生的WebRTC应用程序。

第二层WebRTC C ++ API,它是Web API和libwebrtc的底层实现。该层包含了连接管理、连接设置、会话状态和数据传输的API。基于这些API,浏览器厂商可以方便地加入对WebRTC的支持。WebRTC规范里没有包含信令协议,这部分需要研发人员依据业务特点自行实现。

WebRTC支持的音频编码格式有OPUS和G.711,同时还在音频处理层实现了回音消除及降噪功能。WebRTC支持的视频编码格式主要有VP8和H264(还有部分浏览器支持VP9及H265格式),WebRTC还实现了Jitter Buffer防抖动及图像增强等高级功能。

媒体传输层,WebRTC在UDP之上增加了3个协议。

■数据包传输层安全性协议(DTLS)用于加密媒体数据和应用程序数据。

■安全实时传输协议(SRTP)用于传输音频和视频流。

■流控制传输协议(SCTP)用于传输应用程序数据。

WebRTC借助ICE技术在端与端之间建立P2P连接,它提供了一系列API,用于管理连接。WebRTC还提供了摄像头、话筒、桌面等媒体采集API,使用这些API可以定制媒体流。

如何学习WebRTC技术?

WebRTC技术包含了音视频编解码技术、传输技术、流媒体服务器技术等,涵盖了音视频处理和传输的方方面面。这些技术中任意一个都能成为独立的课题,都值得花大量时间深入研究。除此之外,理解WebRTC相关API,还必须掌握现代Web技术,尤其是ES6、Promise等语法知识。可见,学习WebRTC技术需要掌握大量的预备知识,这对于初学者来说有一定的门槛。

《WebRTC技术详解:从0到1构建多人视频会议系统》是一本能够降低国内技术人员使用WebRTC的门槛,帮助研发人员更好地将WebRTC技术应用到产品中的书。本书系统地涵盖WebRTC的技术内容,剥离层层技术面纱,将WebRTC以一种易于理解的形式完整呈现给国内技术人员。

本书特色

■全面涵盖WebRTC 1.0规范。

■详细讲解WebRTC底层技术。

■结合示例演示WebRTC API的使用。

■从零起步实现高效、实时的信令系统。

■使用WebRTC技术从0到1打造开源视频会议系统。

作者介绍

栗伟

资深音视频技术专家,在该领域有多年实践经验,对WebRTC有非常深入的研究。曾任职于中科院计算所、CC视频,任职期间利用WebRTC技术开发了直播、在线课堂、视频会议等商业产品,并发用户数达到500万。开源社区的积极参与者,在GitHub上开源了视频会议项目WiLearning,免费供中小企业使用。

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

本文分享自 前端食堂 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是WebRTC
  • WebRTC的技术架构
  • 如何学习WebRTC技术?
  • 本书特色
  • 作者介绍
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档