WebRTC:会话描述协议SDP

本文详细介绍了SDP(Session Description Protocol),一种用于多媒体会话描述的协议,重点阐述了其格式、常见属性以及在WebRTC中的应用。SDP包括会话版本号、发起者信息、会话名、连接数据、媒体描述等关键部分,并通过WebRTC实例展示了SDP在实际连接建立中的使用。
摘要由CSDN通过智能技术生成

什么是SDP

SDP(Session Description Protocol)是一种通用的会话描述协议,主要用来描述多媒体会话,用途包括会话声明、会话邀请、会话初始化等。

WebRTC主要在连接建立阶段用到SDP,连接双方通过信令服务交换会话信息,包括音视频编解码器(codec)、主机候选地址、网络传输协议等。

下面先简单介绍下SDP的格式、常用属性,然后通过WebRTC连接建立过程生成的SDP实例进行进一步讲解。

协议格式说明

SDP的格式非常简单,由多个行组成,每个行都是如下格式。

<type>=<value>

其中:

  • <type>:大小写敏感的一个字符,代表特定的属性,比如v代表版本;
  • <value>:结构化文本,格式与属性类型有关,UTF8编码;
  • =两边不允许存在空格;
  • =*表示是可选的;

常见属性

以下面的SDP为例:

v=0
o=alice 2890844526 2890844526 IN IP4 host.anywhere.com
s=
c=IN IP4 host.anywhere.com
t=0 0
m=audio 49170 RTP/AVP 0
a=rtpmap:0 PCMU/8000
m=video 51372 RTP/AVP 31
a=rtpmap:31 H261/90000
m=video 53000 RTP/AVP 32
a=rtpmap:32 MPV/90000

协议版本号:v=

格式如下,注意,没有子版本号。

v=0

会话发起者:o

格式如下,其中,username、session-id、nettype、addrtype、unicast-address 一起,唯一标识一个会话。

o=<username> <sess-id> <sess-version> <nettype> <addrtype> <unicast-address>

各字段含义如下:

  • username:发起者的用户名,不允许存在空格,如果应用不支持用户名,则为-
  • sess-id:会话id,由应用自行定义,规范的建议是NTP(Network Time Protocol)时间戳。
  • sess-version:会话版本,用途由应用自行定义,只要会话数据发生变化时(比如编码),sess-version随着递增就行。同样的,规范的建议是NTP时间戳。
  • nettype:网络类型,比如IN表示Internet
  • addrtype:地址类型,比如IP4IV6
  • unicast-address:域名,或者IP地址。

会话名 s=

必选,有且仅有一个s=字段,且不能为空。如果实在没有有意义的会话名,可以赋一个空格,即s=

s=<session name>

连接数据:c=

格式如下:

c=<nettype> <addrtype> <connection-address>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值