什么是webrtc

无插件的实时通讯

想象一下,如果你的手机、电视、电脑都可以通过一个平台进行通信,你可以在Web应用中轻松地加入视频聊天和p2p数据分享,这就是WebRTC的愿景。

想试一试吗?WebRTC现在已经被集成到Chrome、Opera和Firefox乃至最新的Edge上。在appr.tc有个简单的视频聊天应用可供测试。

  1. 在Chrome、Opera或Firefox中打开 appr.tc
  2. 点击允许按钮允许应用启用你的摄像头
  3. 在新的选项卡中打开页面底部显示的URL,当然能在另外一台电脑上打开该URL会更好

快速开始

如果你没有时间阅读这篇文章,想直接编码,你可以这样:

  1. 看一看Gooogle关于WebRTC的幻灯片
  2. 你果你没有用过getUserMedia,要先学习一下它,这是教程HTML5 Rocks article,这是例子
  3. 掌握RTCPeerConnection API,学习本文代码段教程,在一个单独的网页中实现了WebRTC例子。
  4. 了解一下WebRTC信令服务、防火墙和NAT转发,这里有一些教程
  5. 实在等不及了,可以通过这20多个demo练习WebRTC的Java API。
  6. 如果有什么问题,可以试试问题帮助页面或者。或者你可以直接跳到这一步,在WebRTC codelab上一步一步的学习如何构建一个完整的视频聊天应用程序,包括一个简单的信令服务器。

关于WebRTC的小故事

Web开发的终极挑战就是通过音频和视频进行实时通信,视频通信本应该像文本通信一样自然。但现实却是,在过去很长的一段时间,实时通信都比较复杂和困难,需要非常丰富的音频和视频技术才能进行开发。 完整的实现实时通信需要整合大量的数据和服务,这个困难在Web上实现更加尤其突出。
如果没有音视频的实时交互,我们在用户交互方面的创新能力会受到限制。
2008年,Gmail视频聊天火了。2011年谷歌发布了Hangouts,收购了GIPS,GIPS为RTC开发了许多组件,比如编码和回声消除技术。谷歌开源了GIPS的相关技术,并且与IETF和W3C等标准化组织达成了行业共识。2011年5月爱立信构建了第一个WebRTC应用。
WebRTC目前实现了实时、无插件的音频、视频和数据通信,我们迫切需要它,因为:

  1. 许多web service在使用RTC,但是需要下载原生app或者插件,比如Skype、Facebook和谷歌Hangouts。

  2. 下载、安装和升级插件非常繁琐,而且容易出错。

  3. 插件不容易发现问题,测试很困难,大部分都需要授权,开发成本太高。

    WebRTC项目的宗旨是:API是开源、免费的、标准的、可内建于浏览器且比其他现存的技术更加高效。
    

WebRTC使用现状

目前WhatsAPP、Facebook 等应用都使用了WebRTC,不仅如此WebRTC还出现在其他平台中,比如TokBox。WebRTC可以被整合到WebKitGTK+或者Qt原生应用中。

一些前置知识

开发WebRTC应用需要做好下列准备:

  1. 获取音视频流或者其他数据
  2. 得到网络信息,如IP地址和端口,通过网络和其它WebRTC客户端交换数据,解决NATs/防火墙穿透问题。
  3. 协调信令通信来报告错误、启动或关闭会话。
  4. 交换媒体和客户端信息,比如分辨率和编解码参数。
  5. 传输音视频流或者其他数据。

为了实现数据流通信,WebRTC实现了下列API:

  1. MediaStream:从设备获取数据流,比如说摄像头和麦克风。
  2. RTCPeerConnection:音视频通话,包括设备加密和带宽管理。
  3. RTCDataChannel:p2p通信。
posted @ 2023-01-12 10:03  丁少华  阅读(233)  评论(0)    收藏  举报