sdp会话描述符有多行用如下格式组成的文本:
<type>=<value>
等号旁边不允许留白。
sdp会话描述符有一个session-level的段,后面会接零个或者多个media-level段。session-level部分使用”v=“开始,直到第一个media-level段。每个media-level段由”m=“开始,直到下个media-level段开始或者描述符结束,下面是个例子:
v=0
o=- 3 2 IN IP4 192.168.33.117
s=CounterPath eyeBeam 1.5
c=IN IP4 192.168.33.117
t=0 0
m=audio 35650 RTP/AVP 0 8 18 101
a=alt:1 3 : sQfPf+iU /KNiTB1A 192.168.33.117 35650
a=alt:2 2 : SnxucZRo zpZgHxu2 192.168.20.1 35650
a=alt:3 1 : 8ZUJ6mxW SHFqJnjo 192.168.88.1 35650
a=fmtp:18 annexb=no
a=fmtp:101 0-15
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
m=video 54812 RTP/AVP 115 34
a=alt:1 3 : zO/vbGtW 56vfK5Yi 192.168.33.117 54812
a=alt:2 2 : 85YBMv+X 7bQYCVFc 192.168.20.1 54812
a=alt:3 1 : GY7RIq4D WivNWaVC 192.168.88.1 54812
a=fmtp:115 QCIF=1 I=1 J=1 K=1 MaxBR=1960
a=fmtp:34 QCIF=1 CIF=1 MaxBR=1960
a=rtpmap:115 H263-1998/90000
a=rtpmap:34 H263/90000
a=sendrecv
有些参数是可选的,那么会带上*:
会话描述符
v= (protocol version)
o= (originator and session identifier)
s= (session name)
i=* (session information)
u=* (URI of description)
e=* (email address)
p=* (phone number)
c=* (connection information -- not required if included in all media)
b=* (zero or more bandwidth information lines) One or more time descriptions ("t=" and "r=" lines; see below)
z=* (time zone adjustments)
k=* (encryption key)
a=* (zero or more session attribute lines)
一个或者多个媒体描述符 时间描述符
t= (time the session is active)
r=* (zero or more repeat times)
媒体描述符
m= (media name and transport address)
i=* (media title)
c=* (connection information -- optional if included at session level)
b=* (zero or more bandwidth information lines)
k=* (encryption key)
a=* (zero or more media attribute lines)
关于a参数,也就是属性
可以用在session-level和media-level两个层次中。格式为
a=<attribute>
a=<attribute>:<value>
例如
a=recvonly
a=orient:landscape
在media-level中a参数有如下两个较为重要的部分
a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>]
一般来说动态载荷类型用得比较多,静态一般不会使用比如u-law PCM默认就是单声道8kHz采样率,这个是用载荷类型为0就可以完全表达出来。而动态载荷类型则不然,有时候会根据网络状况调整细分参数,比如调整采样率和和编码方式。
a=fmtp:<format> <format specific parameters>
该属性值指定一个SDP不了解的特殊格式,该格式是媒体的格式的一种m参数中给出,定义指定格式的附加参数。