18. SDP协议

SDP协议描述

在这里插入图片描述

SDP(Session Description Protocol)它只是一种信息格式的描述标准,本身不属于传输协议,但是可以被其他传输协议用来交换必要的信息。

SDP规范

多个媒体级描述
一个会话级描述
由多个<type>=<value>组成

会话层

会话的名称与目的
会话的存活时间
会话中包括多个媒体信息

媒体层

媒体格式
传输协议
传输IP和端口
媒体负载类型

SDP就是由一个全局的会话层和多个媒体层组成的。媒体层是在会话层之内的。一个会话层会有多个媒体层。

SDP描述信息

Session Description(会话层的描述)

  • v=(protocol version)
    版本
  • o=(owner/create and session identifier)
    谁创建的
  • s=(session name)
    名字
  • c=*(conn info - optional if included at session-level)
    可选的
  • t=(time the session in active)
    存活时间
  • a=*(zero or more session attribute lines)
    属性

Media Description(媒体层的描述)

  • m=(media name and transport address)
    姓名,传输地址信息
  • c=*(conn info - optional if included at session-level)
  • b=*(bandwidth information)
    带宽,可以限制流量
  • a=*(zero or more session attribute lines)
    属性

SDP中字段含义和使用

SDP协议格式
SDP协议的格式由一系列的行组成,每行以一个字母开头,表示该行的类型。SDP协议定义了一些标准的行类型,包括v、o、s、c、t、m等。下面是一个简单的SDP协议格式示例:

v=0
o=- 123456 7890 IN IP4 192.168.1.1
s=My Session
c=IN IP4 192.168.1.1
t=0 0
m=audio 5004 RTP/AVP 0 8 18

在上面的示例中,v表示协议版本,o表示会话的起始者和会话ID,s表示会话名称,c表示连接信息,t表示会话的时间信息,m表示媒体信息。

  1. Version 必选
    v=0 SDP的版本号,不包括次版本号
  2. Session Name必选
    s=<session name>会话名,s=-表式忽略会话名
  3. Origion/Owner必选
    o=<username> <session id> <version> <network type><addresstype><address>
    例子:o=-7017624586836067756 2 IN IP4 127.0.0.1
    -就是忽略用户名
    IN 就是internet
    
  4. Connection可选
    C=<network type><address type><connection address>
    例子: c=IN IP4 0.0.0.0
    
  5. Media必选
    m= <media><port> <transport><fmt/payload type list>
    
    例子: m=audio 1024 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 126
    
    选择音频还是视频
    
  6. Attributes可选
    可以有一个或者多个,可选的
    a=<TYPE>或a=<TYPE>:<VALUES>
    例子: a=framerate:<帧速率>
    
  7. rtpmap 可选
a=rtpmap:<fmt/payload type><encoding name>/<clockrate>[/<encodingparameters>]

例子: a=rtpmap:103 ISAC/16000
  1. fmtp可选
a=fmtp:<format/payload type> parameters
例子: a=fmtp:103 apt=106

SDP示例

下面是一些常见的SDP示例,用于描述不同类型的会话和媒体流。

1.媒体级会话VLC播放264视频的sdp文件

v=0
o=- 0 0 IN IP4 127.0.0.1
s=VLC media player
c=IN IP4 127.0.0.1
t=0 0
a=tool:vlc 2.2.4
m=video 5004 RTP/AVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:streamid=0

2.媒体级会话VLC播放g711音频的sdp文件

v=0
o=- 0 0 IN IP4 127.0.0.1
s=VLC media player
c=IN IP4 127.0.0.1
t=0 0
a=tool:vlc 2.2.4
m=audio 5004 RTP/AVP 0
a=rtpmap:0 PCMU/8000
a=control:streamid=0

3.点播mp4文件,MS_H返回给终端的sdp信息

v=0
o=- 0 0 IN IP4 127.0.0.1
s=Session streamed by "MS_H"
i=sample.mp4
c=IN IP4 0.0.0.0
t=0 0
a=tool:libavformat 57.56.101
m=video 0 RTP/AVP 96
b=AS:1000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:trackID=1
m=audio 0 RTP/AVP 97
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
a=control:trackID=2

4.直播

v=0
o=- 0 0 IN IP4 127.0.0.1
s=Live Stream
c=IN IP4 0.0.0.0
t=0 0
a=tool:libavformat 57.56.101
m=video 0 RTP/AVP 96
b=AS:1000
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=64001F;sprop-parameter-sets=Z0IAH5WoFAFuQA==,aM48gA==
a=control:trackID=1
m=audio 0 RTP/AVP 97
b=AS:128
a=rtpmap:97 MPEG4-GENERIC/44100/2
a=fmtp:97 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
a=control:trackID=2

WebRTC中的SDP

在这里插入图片描述

  • 7
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值