1.1、webrtc的历史和现状

本书目录

温馨提示:本书的内容,将按照顺序一一展开,上篇文章阐述本书的诞生的原因,推荐阅读方式等。 如果你还没有阅读上一篇文章(必读前言—— 作者的独白),我建议返回阅读。

webrtc的前世今生

  在本书的的“必读前言”中,简单的阐述了webrtc是什么? 本篇内容,着重阐述的webrtc的历史背景和应用情况,希望给正在学习或者正考虑学习webrtc的小伙伴一些参考。有部分的读者可能和我一样,历过移动网络的时代变迁,1G/2G 时代,拨打电话,千里传音,天边之外皆可近在咫尺;3G时代,打开QQ,天涯若比邻,“我的世界需要你无时无刻的笑靥如花”不仅是是童话里的浪漫了;4G时代,抖音快手、贴吧饭否、百花齐放,思想与表达在互联网上“狂欢”;5G时代,仿佛时空穿越,万物互联。

   在通信基础设施逐渐完备的时代,音视频通信的应用也是达到一个新的热度,截止到2017年,微信的月人均通话时长达到了139分钟, 月人均通话达到了19次;于此同时,各类实时通信类应用层出不穷,如互动直播类、狼人杀、线上答题。而反观三大运营商的运营统计数据,传统的通话量却出现了负增长,实时通信的需求越发的强烈。这些改变得益于更快速的通信网络、更快的智能手机,更加智能的操作系统。

  说起实时通信技术,不得不谈谷歌的webrtc项目,在webrtc发布之前,开发实时音视频应用的成本是非常昂贵,需要考虑的技术问题很多,如音视频的编解码问题,数据传输问题,延时、丢包、抖动、回音的处理和消除等,如果要兼容浏览器端的实时音视频通信,还需要额外安装插件。当然,可以考虑使用成熟的第三方技术,比如当时世界顶级的互联网音视频方案提供商GIPS(Global IP Sound),支付相应的费用就行。很多知名的应用或者软件服务商也都在用GIPS,如Yahoo,AOL,IBM,SKYPE,QQ等,在这个年代能开发出较好兼容性的实时音视频应用,门槛较高。

  2011年,谷歌以6820万美元收购GIPS。当然谷歌不光收购了GIPS,还收购了On2,得到了VPx系列视频编解码器。于是,webrtc项目诞生,融合了GIPS的音视频引擎、VPx视频编解码器,P2P穿洞技术等,随后将其开源。webrtc,全称Web Real Time Communication,从web一词可以看出,这一技术最初就是为了在浏览器端扩展实时音视频通信的能力而准备的。

  经历了6年的时间,2017 年 11 月 2 日 ,W3C WebRTC 1.0 草案正式定稿,webrtc加入W3C大家族。随后,各大浏览器厂商跟紧支持。根据全球领先的技术研究和咨询公司——Technavio的关于“全球网络实时通信(webrtc)市场”的研究报显示,自2017-2021年期间,全球网络实时通信(webrtc)市场,将以34.37%的年均复合增长率增长,可谓十分的迅速。下图展示了各浏览器版本对webrtc相关技术的支持情况,如图1.1.1所示。

 图 1.1.1 (各浏览器版本对webrtc相关技术的支持统计,截图来自https://caniuse.com/#search=webrtc)

  webrtc项目的愿景:实时通信应用web化,让webrtc成为互联网音视频实时通信的规范,让开发者基于此规范快速开发出安全、可靠的应用。 谷歌的这项举动,加速了全世界实时通信技术的进程。

  2019年是5G的元年,我写文章是在2020年初,我觉在这个时间点写这本书,非常适宜。5G网络,提高了通信的速率,也带来了各种机会。在实时音视频通信领域,5G就是一片沃土,滋养出大量的应用,webrtc技术将逐渐成为了行业的规范。

  如今,webrtc,虽然还以以“web”冠名,但并不限于仅在浏览器中使用,还可以在桌面端、移动端(Android&IOS)、IoT(物联网设备)使用,可谓只要遵循webrtc规范即可。 我们来看看如今,国内基于此项技术研发的解决方案。

webrtc在国内应用

   国内基于webrtc的实时音视频解决方案提供商也比较多,如腾讯云、声网、即构科技、融云......(这里仅列举部分)。  实时音视频的典型应用场景,如在线教育、视频客服、互动游艺、企业办公、在线招聘、在线医疗等。这里需要注意,webrtc的应用和传统的成千上万人的直播应用是不一样的,首先,万人直播,通常观看人数多(依赖CDN的分发能力),对实时性要求不高,单向推流(不考虑连麦的情况);实时音视频对实时性要求高,双向通信(一对一或者一对多互动),数据传输一般是p2p直连或者turn服务中转。在线教育、视频客服、视频会议等都要求有实时互动的需求,且人数不是很多,适合使用webrtc。

未来的展望

 未来的音视频实时通信,肯定是现代化生产活动中极其重要的板块,从今年各大浏览器厂商对webrtc的支持情况来看,webrtc在实时音视频板块中不可或缺。随着 WebRTC 1.0 标准的定稿,各大浏览器的 WebRTC 接口已经基本得到统一。谷歌也推出一系列测试工具,帮助开发者测试 WebRTC 应用在 Web 端、Native 端的互通性。同时,各浏览器也在持续不断地修复问题,对不同硬件设备以及系统平台进行适配,保证 WebRTC 能稳定运行于除主流机型、系统版本以外,更多的设备上。

  webrtc前途一片大好,和我一起开启你的webrtc之旅吧。

最后,附上本书指定交流微信公众号——“晨叔周刊”,回复:“webtrc”,即可进入本书讨论的圆桌。小伙伴有任何问题,进入圆桌讨论吧。

上一篇:必读前言—— 作者的独白

下一篇:1.2、初识webrtc

参考文档:https://baijiahao.baidu.com/s?id=1602315500666697354&wfr=spider&for=pc

1.1、webrtc的历史和现状的更多相关文章

  1. Linux入门(历史与现状)

    Linux 入门之 历史与现状   Linux是一个计算机的操作系统,与windows类似,是一款系统软件.操作系统首先是一个计算机程序,使用计算机语言开发,比如C语言.VC语言.是计算机硬件和应用软 ...

  2. iPhone屏幕适配,历史及现状(http://hjcapple.github.io/2014/10/10/iphone-screen.html)

    iPhone屏幕适配,历史及现状 初代iPhone 2007年,初代iPhone发布,屏幕的宽高是320×480像素.下文也是按照宽度,高度的顺序排列.这个分辨率一直到iPhone 3GS的也保持不变 ...

  3. arm处理器的历史及现状

    1 arm处理器的发展历史 arm1 arm2 arm3 arm6 arm7 arm9 arm11 arm cortex 2 arm处理器现状 arm cortex A a即application,即 ...

  4. 【入门】广电行业DNS、DHCP解决方案详解(一)——历史及现状篇

    广电发展历史 单项网络 双向网络 智能网络 广电网络现状 广电网络典型特征 接入技术混杂 承载业务多样化 业务终端错综复杂 其他 网络现状模型 总结 广电发展历史 广电就是广播电视,广电发展可以分为三 ...

  5. k8s极简史:K8s多集群技术发展的历史、现状与未来

    引子 随着云原生技术的普及,越来越多的企业使用Kubernetes来管理应用,并且集群规模也呈爆发式增长,企业也亟需应对随集群规模增长而带来的各种挑战.同时,为了更好地提供高可用.弹性伸缩的应用,企业 ...

  6. TSN 时间敏感网络:缘起 (TSN历史与现状)

    前言 随着工业物联网(IIoT)的兴起和工业4.0的提出,越来越多的设计师.工程师和最终用户关注时间敏感网络(Time-Sensitive Networking,下简称为TSN).TSN为以太网提供确 ...

  7. C++的历史与现状

    在31年前(1979年),一名刚获得博士学位的研究员,为了开发一个软件项目发明了一门新编程语言,该研究员名为Bjarne Stroustrup,该门语言则命名为——C with classes,四年后 ...

  8. 1.2、初识WebRTC

    文章导读:本节内容,如标题所讲,“初识webrtc”.读完之后,我需要你能清楚三个问题:第一.真正的搞明白实时音视频在生产环境中的真实应用以及前景分析:第二.开发一个符合商业标准的实时音视频应用需要解 ...

  9. [转载]iOS 10 UserNotifications 框架解析

    活久见的重构 - iOS 10 UserNotifications 框架解析 TL;DR iOS 10 中以前杂乱的和通知相关的 API 都被统一了,现在开发者可以使用独立的 UserNotifica ...

随机推荐

  1. 【Python】字符串处理方法

  2. 2-第一个Django程序

    第一个Django程序 从本章节开始将通过实现一个投票应用程序,来让用户逐步的了解Django.这个程序由两步分组成: 公共站点,允许用户访问进行投票,和查看投票. 站点管理,允许添加,删除,修改投票 ...

  3. java下载和环境变量配置

    初学java,以前没有接触过这方面内容,所以简要记录一下我2个月的学习流程. 首先,我在慕课上学习java的基础,浙江大学翁恺老师的课程. 下载ECLIPSE-java 进入官网:https://ww ...

  4. 数据结构学习笔记 <1> 线性表

     一.线性表的抽象数据类型描述 类型名:线性表(List) 数据对象集:线性表示n(>=0)个元素构成的有序序列(a1,a2,……,an) 操作集:线性表L∈List, 整数i表示位置,元素X∈ ...

  5. MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement.

    MYSQL导入CSV格式文件数据执行提示错误(ERROR 1290): The MySQL server is running with the --secure-file-priv option s ...

  6. WPF学习笔记一之布局

    1.Canvas 布局控件Canvas主要用来画图,注意Canvas.Left/Right/Top/Bottom <Canvas Margin="10,10,10,10" B ...

  7. MongoDB-2 安装与配置

    安装建议 MongoDB 可以在mac/win/linux上安装,我个人建议在linux上安装会更好,这样测试起来更方便.一般来说本地只装mysql或者MariaDB,其余的中间件一律放linux,让 ...

  8. Django框架-模板层

    Django框架-模板层 一.模板语法传值 1.验证是否python所有的数据类型都可以传递到前端 locals()的妙用:该方法虽然好用,但是在某些情况下会造成资源的浪费 结论:整型.浮点型.字符串 ...

  9. glog与gflags的windows编译

    参考博客:https://kezunlin.me/post/bb64e398/

  10. 剑指OFFER之合并两个排序的链表

    题目描述 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. 解决办法 1.递归方法: if(pHead1==NULL) return pHead2; els ...