• sdp概览


    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参数中给出,定义指定格式的附加参数。
      

  • 相关阅读:
    OSGi系列 Apache Felix初体检
    OSGi系列 我理解的OSGi
    OSGi系列 开发服务端Web应用之一:Servlet实现
    10 Productivity Tips
    在DotNetNuke中通过修改ascx文件源码自定义界面
    DNN4.3.3的版本开发的模块.没登陆DNN的情况下,按钮的事件有时候执行,有时候怎么点都不执行
    DotNetNuke(DNN)网站发布、部署、迁移和重建
    使用3dmax 9.0导入Illustrator 文件时提示"Line in file exceeds 255 characters"
    ”A page can have only one serverside Form tag“错误
    DotNetNuke出错:“Runat 属性必须具有值 Server(The Runat attribute must have the value Server Error)"
  • 原文地址:https://www.cnblogs.com/wendellyi/p/3593322.html
Copyright © 2020-2023  润新知