Web前端WebRTC攻略(四) 媒体协商与SDP简析

本文介绍了WebRTC中的媒体协商过程,包括媒体协商的流程、前端代码实现,以及SDP的概念、格式和在WebRTC中的应用。通过创建offer和answer,双方交换SDP信息完成协商。此外,详细解析了SDP的结构和示例,帮助理解其在音视频通讯中的作用。
摘要由CSDN通过智能技术生成

1、媒体协商

在音视频通讯场景中,由于两端之间所支持的音视频编解码、传输协议、传输的速率,都需要进行彼此通知对方。

我们把一个 1 对 1 的音视频通讯,比喻成双方互送快递包裹的过程。

首先这里有很多问题,双方要彼此告知对方后,才能寄送包裹。 比如:

  • 我不知道包裹要寄给谁?(我要和谁建立通讯)

  • 对方能否使用我的包裹?(我的媒体格式对方是否支持)

  • 对方在哪里,地址是什么?(对方所处网络的位置在哪)

  • 走那条路线寄送最快?(走哪种网络传输最效率)

实际场景中,我们要打电话互相告诉对方一些信息。而在音视频通讯中,也需要这个“打电话”步骤,形式上一般是通过建立“信令通道”来传送信令。对于 Web 前端来说最常见以 WebSocket 来作为信令通道,通过它来交换信令并进行协商。真正的媒体数据,则是通过 RTCPeerConnection 进行传输。

比如包含什么媒体流/轨,或者是我的编码是否被对方的解码器所支持等等这些问题,则通过 SDP 作为载体告诉给对方。

1.1 什么是媒体协商?

在没有建立 WebRTC 连接传输数据前,首先需要让本地端和远端确认彼此共同支持的媒体能力。如:音视频编解码器、使用的传输协议、IP 端口和传输速率等等。而这些信息需要通过前文所说的 SDP 来互换,这个过程称之为媒体协商。

1.2 媒体协商的流程

这里以在两个前端浏览器建立通讯来进行说明,我们暂且称“发起端”和“应答端”。

  1. 首先双方连接信令通道,(一般由业务决定如何实现),并能交换信令。

  2. 发起端调用 RTCPeerConnection.cr**eateOffer** 创建一个offer,并调用 setLocalDescription 设置本地的 SDP。

  3. 然后通过信令服务器 将含有 SDP 的 offer 设置给应答端。

  4. 应答端拿到此 offer 以后调用 setRemoteDescription 将此 SDP 信息保存。

  5. 应答端调用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值