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

  • 相关阅读:
    JavaScript npm/nrm 切换安装依赖的镜像源
    Vue Vuex中的严格模式/实例解析/dispatch/commit /state/getters
    Vuex mapGetter的基本使用
    Springboot 整合Mybatis-plus
    SEO基本功:站内优化的一些基本手段
    解决使用logstash中jdbc导入mysql中的数据到elasticsearch中tinyint类型被转成布尔型的问题的方法
    【重大好消息】elasticsearch 7.3版本已经可以免费使用x-pack就可以设置账号和密码了,让你的数据不再裸奔
    elasticsearch7.3版本已经不需要额外安装中文分词插件了
    网络案例分析之999皮炎平出鹤顶红色号的口红
    php框架symfony踩坑苦旅(1)
  • 原文地址:https://www.cnblogs.com/wendellyi/p/3593322.html
Copyright © 2020-2023  润新知