WebRTC

简介

WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2010年以6820万美元收购Global IP Solutions公司而获得的一项技术。

首先,什么是实时通信?

举个直白的例子,我们平时打电话就是实时通信。现在有很多实时通信的软件,比如 丁丁、有信……这是手机app。PC客户端像Xlite、Linphone等等。这些客户端接入网络,注册到相应的服务器上就可以进行音频通信了,支持视频的还能进行视频通信。拿Xlite来说,它的信令机制采用的是sip协议。SIP协议是IMS网络广泛使用的信令协议,已经很成熟。两个uesr 通过Xlite客户端注册到sip server(如 Asterisk)上,就可以互相拨打对方的号码音视频通信了,不过就Xlite来说,语音通话是免费的,但是视频的话,是要支付money软件才提供视频功能的……

本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg webRTC rtmp hls rtsp ffplay srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

其次,为什么要提出WebRTC?

一直以来,用户如果想通过互联网进行实时通信,就需要安装软件,要么就得在浏览器中安装插件。WebRTC的宗旨是不需用户安装任何插件,直接使用浏览器就可以进行实时音视频通信。就是如果WebRTC实现了,我们打开浏览器,输入网址,登陆进去,拨打号码,就可以互相音视频了。不再需要安软件,也不需要安装额外的浏览器插件。Web版QQ大家都用过吧,现在还只能发发消息发发表情,如果引入WebRTC,那音视频传文件都不在话下,现在QQ客户端有的功能,通过网页访问都能体验,估计到时候都不愿意再装体积越来越大的QQ客户端了吧。

最后,需要知道的内容

  • WebRTC已经纳入HTML5标准
  • 目前支持webrtc的浏览器有 Chrome Firefox OperaIE不支持~
  • WebRTC没有指定具体的信令协议,具体的信令协议留给应用程序实现。
  • webRTC使用JSEP协议建立会话,什么是JSEP后面说
  • WebRTC采用ICE实现NAT穿越
  • WebRTC客户端之间可以进行点对点的媒体传输。

JSEP

JSEP(JavaScript Session Establishment Protocol,JavaScript会话建立协议)是一个信令API,允许开发者构建更强大的应用程序以及增加在信令协议选择上的灵活性。

建立会话最关键的就是媒体的协商,WebRTC虽然没有指定具体的信令协议,但是媒体协商采用了SDP协议。JSEP是干什么的呢,一方面提供接口如createOffer()供web应用程序调用生成SDP,另一方面提供ICE功能接口。这些功能都由浏览器实现,浏览器
WebRTC传输信令(offer/answer)采用Websocket
需要说明的是,如果web应用程序不使用额外的信令协议,仅使用JSEP,两个WebRTC client (同一个WebRTC client程序,两处登陆) 之间也是可以建立链接的,即只要应用程序能解析用WS传递过来的Offer/Answer消息,提取出其中的SDPICE信息就可以了。

github上codelabdemo 就是不用其他信令协议,直接使用JSEP生成offer/answer信令,然后采用ws协议传输实现的。

JSEP并不是信令协议,可以在JSEP的基础上引入SIP等信令协议,使WebRTC应用功能更加完备。

WebRTC与SIP互通

要想让WebRTC与sip互通,要解决两个层面的问题:信令层媒体层
两个网络使用的信令机制不同,所以要进行信令的转换,才能完成媒体的协商,建立会话。媒体层要完成编码的转换,以及rtp/srtp转换等功能。这里主要说项信令层面的互通。

信令互通方案

目前sip和webrtc信令上互通有两种解决方案:

  • 用JavaScript实现sip协议栈,webrtc应用程序基于这个协议栈开发。这样webrtc client发出的信令就是sip信令,但一般采用websocket为信令传输协议。这样的webrtc client就可以直接注册到支持ws的sip server上了。
    jssip 、sipml5 都是这种解决方案。
  • 通过转换网关实现协议的转换,从而互通。一个开源的网关项目就是 webrtc2sip
    webrtc2sip是一个功能很完善的网关,既实现了信令层,也实现了媒体层,编码转换功能很强大,也可以直接当做媒体网关,用于编解码,沟通两端的媒体。

本文福利, 免费领取C++音视频学习资料包、技术视频,内容包括(音视频开发,面试题,FFmpeg webRTC rtmp hls rtsp ffplay srs)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

WebRTC与SIP相关推荐

  1. webrtc 之 sip trickle ice

    本文原创自 http://blog.csdn.net/voipmaker  转载注明出处. webrtc 客户端建立通话的过程中通过交互 candidate实现nat穿越,如果这些交互的candida ...

  2. 第五章 WebRTC, SIP和 Verto

    WebRTC,视频和音频的实时通信,已经在超过十亿个浏览器上工作.很快移动应用程序就会成倍增长.WebRTC有望成为物联网(IOT)所采用的多媒体通信层. FreeSwitch是一个完整的WebRTC ...

  3. 如何实现SIP协议与WebRTC协议与互通-2

    如何实现SIP协议与WebRTC协议与互通-2 不需要付费使用sdk,通过sip协议代理.即可快速实现sip与webrtc协议互通和webrtc与sip协议互通 可私有化临近节点部署,最高支持上万并发 ...

  4. sip转webrtc的并实现网页拨打电话

    sip转webrtc的一种方法并实现网页拨打电话(非webrtc调用sdk) sip转webrtc的一种方法并实现网页拨打电话(非webrtc调用sdk),之前的项目是asterisk1.8版本,开发 ...

  5. wcs开发_WCS 5.2的评论—用于Webcast和Webcam开发人员的WebRTC服务器

    wcs开发 Alice is an experienced full stack developer, who is capable of writing a SAAS project framewo ...

  6. freeSWITCH + WebRTC 音视频会议

    想把 freeSWITCH 和 WebRTC 组合起来做音视频会议,网站找到的资料都比较老了,自己试验了下,把过程记录下来,有需要的人可以参考. 基本的设想是: JsSIP 用于网页端(Chrome) ...

  7. asterisk实现webrtc拨打电话

    asterisk实现webrtc拨打电话. asterisk在11版本以上,已经支持socket,实现网页拨打电话的方案比较多. 但低于asterisk11版本的,如何将sip协议转换srtc实现网页 ...

  8. 译:WebRTC视频通信浅析

    译:WebRTC视频通信 http://blog.csdn.net/csdnhaoren13/article/details/50999168 原文:http://www.html5rocks.com ...

  9. 译:WebRTC视频通信

    原文:http://www.html5rocks.com/en/tutorials/webrtc/infrastructure/ WebRTC可以进行p2p之间的通信,但是仍需要服务支持. 1. si ...

最新文章

  1. python 语言-python是一门什么样的语言?
  2. iOS 加密的3种方法
  3. iOS使用AVCaptureSession自定义相机
  4. Python使用循环实现1-100的和
  5. linux mysql 释放x锁_MySQL 加锁处理分析-转载
  6. 客户端的socket是否需要bind?
  7. Ocelot 资源汇总
  8. 第五章模糊查询和聚合函数
  9. Shell命令-文件及内容处理之sort、uniq
  10. mysql useunicode_jdbc连接mysql 为什么在连接时已经这样设置了 ?useUnicode=truecharacterEncodin...
  11. windows系统挂载存储阵列的iscsi映射虚拟磁盘
  12. 精益创业实战 - 第8章 针对解决方案做客户访谈
  13. c语言设计程序计算水仙花数,C语言水仙花数算法
  14. 大型网站技术架构核心原理与案例分析(李智慧)学习笔记2--大型网站架构五大核心要素
  15. C++面向对象程序设计大作业:魔兽世界(三):开战
  16. Grafana画图表教程
  17. 阿里云轻量应用服务器流量计算方法
  18. 【深度干货】数据中心机柜综合布线
  19. 深圳物联网培训:要想成为一名物联网工程师,需要学习哪些知识?
  20. Excel导入数据库方式

热门文章

  1. 二叉树的DPS以及BPS
  2. Java——list的四种遍历
  3. java集成微信支付接口(微信V3版)
  4. Network penetration testing_Work5(Flash 0day CVE-2018-4878复现过程)
  5. 蓝牙5.1低功耗SOC 私有协议2.4GHz芯片HS6621
  6. 最全阿里巴巴Java面试题大揭秘
  7. 东芝打印机共享Windows10访问不了、无法访问问题 解决方法
  8. 通信模组中的常见术语
  9. 【转载】用外部程序启动AutoCAD方法的研究(启动闪屏制作与CreateProcess启动操控AutoCAD探索)
  10. 尚航科技冲刺深交所上市:计划募资7.4亿元,雷军也是其股东