WebRTC(三)媒体协商技术

2024-05-04 02:58
文章标签 技术 媒体 webrtc 协商

本文主要是介绍WebRTC(三)媒体协商技术,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

WebRTC通过ICE技术可以实现客户端P2P连接,但是在两端进行P2P连接前还需要先进行媒体协商。WebRTC媒体协商技术主要包括两部分:一部分是SDP(Session Description Protocol)协议,另一部分是JSEP(JavaScript Session Establishment Protocol)协议

SDP协议

SDP协议,即会话描述协议,它提供一种描述实时音视频通信所需的各种参数的通用描述,是一个文本信息。简单来说,SDP就是客户端的各端的音视频实时通信的能力,能力指的是各端所支持的音视频编解码能力及相关参数、传输协议和音视频媒体类型等等。SDP描述的基本结构如下图所示。

 

SDP基本结构图

SEP协议

SEP协议,即JavaScript会话建立协议,是一个信令控制协议。在媒体协商的过程中,JSEP协议通过“Offer/Answer”媒体协商机制,承载着遵循SDP协议的信息进行数据交互。JSEP数据一般使用JSON数据结构表示,比如使用“type”字段表示JSEP类型,“sdp”字段承载 SDP 文本数据,结合RTCPeerConnection API 的媒体协商流程如下图所示。

 

WebRTC媒体协商图

  1. 客户端A创建RTCPeerConnection对象,然后调用offerForConstraints 函数创建 SDP Offer信息,并通过setLocalDescription函数设置 RTCPeerConnection 的本地会话描述;
  2. 客户端A将SDP Offer信息发送给信令服务器,由信令服务器转发给客户端B;
  3. 客户端B收到客户端A的SDP Offer 后,通过调用setRemoteDescription函数保存客户端A的SDP;
  4. 客户端B创建RTCPeerConnection对象,然后调用answerForConstraints函数创建SDP Answer信息,并通过setLocalDescription函数设置 RTCPeerConnection 的本地会话描述;
  5. 客户端B将SDP Answer信息发送给信令服务器,由信令服务器转发给客户端A;
  6. 客户端A收到客户端B的SDP Answer后,通过调用setRemoteDescription函数保存客户端A的SDP;

至此,客户端A和客户端B都拿到双方的SDP信息,然后双方就可以通过ICE技术正式进行P2P连接。


 

这篇关于WebRTC(三)媒体协商技术的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/958204

相关文章

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

乐鑫 Matter 技术体验日|快速落地 Matter 产品,引领智能家居生态新发展

随着 Matter 协议的推广和普及,智能家居行业正迎来新的发展机遇,众多厂商纷纷投身于 Matter 产品的研发与验证。然而,开发者普遍面临技术门槛高、认证流程繁琐、生产管理复杂等诸多挑战。  乐鑫信息科技 (688018.SH) 凭借深厚的研发实力与行业洞察力,推出了全面的 Matter 解决方案,包含基于乐鑫 SoC 的 Matter 硬件平台、基于开源 ESP-Matter SDK 的一

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

持久层 技术选型如何决策?JPA,Hibernate,ibatis(mybatis)

转自:http://t.51jdy.cn/thread-259-1-1.html 持久层 是一个项目 后台 最重要的部分。他直接 决定了 数据读写的性能,业务编写的复杂度,数据结构(对象结构)等问题。 因此 架构师在考虑 使用那个持久层框架的时候 要考虑清楚。 选择的 标准: 1,项目的场景。 2,团队的技能掌握情况。 3,开发周期(开发效率)。 传统的 业务系统,通常业

亮相WOT全球技术创新大会,揭秘火山引擎边缘容器技术在泛CDN场景的应用与实践

2024年6月21日-22日,51CTO“WOT全球技术创新大会2024”在北京举办。火山引擎边缘计算架构师李志明受邀参与,以“边缘容器技术在泛CDN场景的应用和实践”为主题,与多位行业资深专家,共同探讨泛CDN行业技术架构以及云原生与边缘计算的发展和展望。 火山引擎边缘计算架构师李志明表示:为更好地解决传统泛CDN类业务运行中的问题,火山引擎边缘容器团队参考行业做法,结合实践经验,打造火山

(1995-2022年) 全国各省份-技术交易活跃度

技术交易活跃度是一个关键指标,用于衡量技术市场的交易频繁程度和活跃性。它不仅显示了市场参与者对技术交易的参与热情,而且交易的频率也体现了市场的活力。这一指标对于不同的利益相关者具有不同的意义: 对投资者而言,技术交易活跃度是把握市场趋势、评估交易策略和预测市场波动的重要工具。对企业来说,技术交易活跃度反映了其技术创新的活跃程度和市场竞争的激烈程度,有助于企业制定技术创新和市场竞争策略。对政策制定

AI与音乐:当技术与艺术发生冲突

AI在创造还是毁掉音乐? 在科技日新月异的今天,人工智能(AI)已经渗透到了我们生活的方方面面,音乐领域也不例外。然而,尽管AI为音乐创作带来了前所未有的便利,我却深感其正在毁掉音乐的本质。 首先,AI的介入使得音乐创作过程变得过于机械化。传统的音乐创作往往需要音乐家们经过长时间的思考、尝试和修改,最终才能创作出触动人心的作品。这一过程不仅体现了音乐家的才华和技艺,更蕴含了他们对生活的感悟和对

IPD推行成功的核心要素(十一)技术规划与平台规划促进公司战略成功

随着外部大环境的影响,各企业仅有良好的愿望是不够的。预测并顺应新兴市场和技术的变化,变危机为转机,不断推出强大的产品才是一个公司持续繁荣的根本保障。而高效的产品开发往往是基于某些关键技术,针对市场推出的一个或几个产品系列,这些产品系列通常共用一些产品平台,共用一种或者几种关键技术。当一家企业进入了平稳发展期,已经建立了较为完善的管理制度和产品开发流程,但是依然认为竞争对手是那样强大,那样不可战胜。

云原生容器技术入门:Docker、K8s技术的基本原理和用途

🐇明明跟你说过:个人主页 🏅个人专栏:《未来已来:云原生之旅》🏅 🔖行路有良友,便是天堂🔖 目录 一、容器技术概述 1、什么是容器技术 2、容器技术的历史与发展 3、容器技术与虚拟机的比较 4、容器技术在云原生中的作用 二、Docker基础 1、Docker简介 2、Docker架构 3、Docker与工作原理 三、Kubernetes(k8s)基础 1、

JavaScript Promise技术

你可能已经知道Promises现在已经是JavaScript标准的一部分了。Chrome 32 beta版本已经实现了基本的Promise API。如今,Promise的概念在web开发中已经不是什么新鲜玩意了。我们中的大多数人已经在一些流行的JS库例如Q、when、RSVP.js中使用过了Promises。即使是jQuery中也有一个和Promises很类似叫做Deferred的东西。但是Ja