为了便于理解,我们来看一个最基本的三角形WebRTC架构(见下图):

在这个架构中,移动电话用“浏览器M”表示,笔记本电脑用“浏览器L”表示,通过Web服务器将它们连接起来。要建立一个实时媒体通讯,两台设备需要了解彼此的媒体功能,通过交换呼叫信令控制协议实现。

诸如这样的信令协议在WebRTC标准中并非事先规定,而是由开发者自行制定。在浏览器RTC会话的步骤如下:

首先,两个浏览器都从Web服务器下载了WebRTC程序(HTML5/JavaScript);
    其次,两个浏览器通过Web服务器交换控制信令信息(使用嵌入式信令服务器),建立媒体功能功能互通。
    最后,两个浏览器直接建立RTC媒体的音频、视频和数据通道。

WebRTC使用P2P媒体流,音频、视频和数据的连接直接通过浏览器实现。但是,浏览器却隐藏在NAT(网络地址翻译)和防火墙的后面,这增加了建立P2P媒体会话的难度。这些流程和协议,如ICE或Trickle ICE,STUN和TURN,在建立P2P媒体流都是必不可少的。即时通讯聊天软件app开发可以加蔚可云的v:weikeyun24咨询

如何使用STUN协议建立一个P2P RTC媒体(如图5所示),简化版的ICE流程如下:

1.两个浏览器通过自己的公网IP地址,使用STUN协议信息和STUN服务器建立联系;
    2.两个浏览器通过SDP提供/应答机制,使用呼叫控制信令消息交换它们已发现的公共IP地址(ICE候选);
    3.两个浏览器执行连接检查(ICE冲孔),确保P2P可以连接;
    4.建立连接后,RTC媒体会话和媒体交换就可以实现了。
    5.但是,假如在一个高度限制的NAT或防火墙,这种直接的路径将无法建立,只能到达TURN服务器。结果是媒体通过TURN服务器分程传递(如下图所示)。

并非由WebRTC实现规定,而是由开发者自行决定。在这个例子中,我们将使用SIP-over-WebSocket(SIPoWS)作为信令栈。HTTP协议用于浏览器下载HTML5/JavaScript程序内容;NAT栈解决P2P连接问题;媒体栈用于发送和接收RTC的音频和视频。

LETF标准规定G.711和Opus作为音频/视频解码器。视频解码器尚未授权,但是H.248和VP8已经获得授权。媒体栈也用于交换RTC数据。本例中,实时信息采用消息会话中继协议(MSRP),实时会议采用二层控制协议(BFCP),实时文本服务采用T.140。

即时通讯开发之实时音视频中的基本架构和协议栈相关推荐

  1. 分享即时通讯开发之实时音视频技术基础知识

    随着移动网络速度越来越快.质量越来越来,实时音视频技术已经在各种应用场景下全面开花,语音通话.视频通话.视频会议.远程白板.远程监控等等.实时音视频技术的开发也越来越受到重视,但是由于音视频开发涉及知 ...

  2. 用腾讯即时通讯IM和实时音视频实现陪玩系统源码的语音通话功能

    在陪玩系统源码中,用户之间主要的交流方式就是语音通话,实时互动性的语音通话能让人产生面对面交谈的感觉,所以在陪玩系统源码中,语音通话功能的开发非常重要,今天我们就一起来看看如何用腾讯即时通讯IM和实时 ...

  3. 用腾讯即时通讯IM和实时音视频实现完整语音通话功能

    说来奇怪,即时通讯领域的霸主QQ,微信,旗下产品出的腾讯即时通讯IM就像个残疾人一样,这里不对那里不对,要达到生产级别,就不得不去改它很多源码才行.今天先不吐槽其他的,我们看看如何在腾讯Im里面完成语 ...

  4. [Web端接入经验分享] 腾讯云即时通信TIM、实时音视频TRTC

    [Web端接入经验分享] 腾讯云即时通信TIM.实时音视频TRTC 即时通信TIM官网地址 即时通信TIM SDK API文档地址 实时音视频TRTC官网地址 实时音视频TRTC SDK API文档地 ...

  5. 聊聊实时音视频中的技术难点:回声消除+噪声消除

    文 | 菊风媒体引擎资深研究团队 在各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的必然趋势,在自然的交流环境中,回声和噪声是非常影响沟通体验 ...

  6. 聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除

    聊聊语音聊天室app源码实时音视频中的技术难点:回声消除+噪声消除 在聊聊语音聊天室app源码各个实时音视频互动场景中,回声和噪声对于影响用户体验而言都是很大的问题.音视频正在发展成为互联网线上沟通的 ...

  7. 【新知实验室-TRTC开发】实时音视频之集美真心话

    目录 前言: 一.说说TRTC呗 语音互动直播 语聊房 语音电台 二.成为TRTC的体验官 1.1分钟了解TRTC产品 2.2分钟新手入门 3.别忘了入场券,也别告诉别人哦 三.3分钟完成新应用搭建 ...

  8. 【新知实验室-TRTC开发】实时音视频之web端云监工系统(Vue3+Element plus+TS+Pinia)

    在线上线下一体化.虚拟现实加速融合的趋势下,音视频已经演进成一种基本能力,深刻变革了社会的交互方式.未来,音视频作为全真互联时代的重要基石,将持续推动互联网和实体产业的数字化创新与升级. 今天我们将体 ...

  9. 【新知实验室-TRTC开发】实时音视频之欢度世界杯

    目录 一.什么是TRTC 二.用5分钟跑通一个demo 1.开通腾讯云-TRTC 2.获取demo必须的两把钥匙 2.1输入应用名称 2.2下载对应的源码包(手机.web.小程序等) 2.3拿到钥匙 ...

最新文章

  1. 利用MTCNN和FaceNet实现人脸检测和人脸识别 | CSDN博文精选
  2. 【Python项目】CMDB的搭建12(SaltStack配置小结2/2)
  3. .NET C# I/O 操作
  4. 最近很火的桌面小猫代打器 人性化UI设置界面
  5. ie8不支持console.log()的解决方法
  6. VisualBox 安装 CentOS 7.6 操作记录
  7. [转载] python hex转字符串_Python hexstring-list-str之间的转换方法
  8. IDEA中添加Tomcat配置,Run/Debug Configurations中没有Tomcat选项
  9. how to remove untagged / none images
  10. 软件测试算是后端吗,软件测试--前后端数据交互
  11. java 读取文件成字节数组_java读取文件为字节数组
  12. Keil Assistant 插件 fromelf 文件路径报错及hex、bin、axf、elf文件之间关系
  13. 组合模式-完美处理树形递归结构
  14. java工程源码看不懂_目前从事java开发工作,看不懂源码应该怎么做?
  15. 100条人生哲理语句
  16. file_get_contents
  17. 协议分析(微信网页版 wx2.qq.com)
  18. angular7中使用jsonViewer
  19. 从事互联网产品运营所需的8条技能
  20. electron 文件另存为

热门文章

  1. 【土味情话】想你太多一点也不累
  2. 平均年薪60.8万,拿下这个证书,数据挖掘就能起飞!
  3. 异质引文网络DBLP数据集(from AMiner)
  4. 幽灵行动荒野oracle正式邀请,steam幽灵行动荒野怎么邀好友 | 手游网游页游攻略大全...
  5. elasticsearch之分词插件使用
  6. 左程云大厂算法刷题班——14
  7. lol6月五日服务器维护,英雄联盟维护的时间是几点结束 6月11日LOL更新维护多久最新公告...
  8. HTML5画布kineticjs路径文字教程
  9. 联想X3850 X6服务器报imm kernel loading
  10. [GRYZ]寒假模拟赛