NO IMAGE

比較不錯的文章,轉載:https://www.cnblogs.com/wendellyi/p/3593322.html

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引數中給出,定義指定格式的附加引數。