SDP协议,全称Session Description Protocol,翻译过来就是会话描述协议。
什么是会话:比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。
SDP在webrtc或voip通话中有重要的作用,它通过文本对媒体信息进行描述。其本身并不传递媒体数据,而是用于参与媒体会话的双方进行媒体协商。通过SDP,通信双方可以知道对方的:支持的音视频编码器、网络信息以及其他重要信息。在webrtc中没有规定统一的信令,通常信令使用使用者自己实现,下图是webrtc中sdp的作用:

highlighting text
- 媒体格式
- 传输协议
- 纯属IP和端口
- 媒体负载类型
- 会话的名称和目的
- 会话存活时间
- 会话中包括多个媒体信息
- v=(协议版本)
- o=(所有者/创建者和会话标识符)
- s=(会话名称)
- c= * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
- t=会话存活时间
- a = * (0 个或多个会话属性行)
ps:(带星号的是可选字段,不带的是必选)
- m=(媒体名称和传输地址)
- c=*(连接信息 ― 如果包含在所有媒体中,则不需要该字段)
- b=*(带宽信息)
- a = * (0 个或多个会话属性行)
1、version 必选
2、session name 必选
s= [sission name] 会话名,s=-表示忽略会话
3、origion/owner 必选o=
例子:o=- 6474257184349789314 2 IN IP4 127.0.0.1
4、connection 可选c=
例子:c=IN IP4 0.0.0.0
5、media 必须
m=
例子:m=audio 9 UDP/TLS/RTP/SAVPF 111 63 103 104 9 0 8 106 105 13 110 112 113 126
6、attributes 可选
a=
例子:a=frameate:<帧速率>
7、rtpmap 可选(重要)
a=rtpmap:
例子:a=rtpmap:111 opus/48000/2
8、fmtp 可选
a=fmtp:
例子:a=fmtp:101 apt=100