实习笔记(五)——SDP消息

RTSP协议里,客户端发送DESCRIBE请求时,服务器端需要返回SDP消息,那什么是SDP呢?

 

SDP是会话描述协议的缩写,是描述流媒体初始化参数的格式,由IETF作为RFC 4566颁布。流媒体是指在传输过程中看到或听到的内容,SDP包通常包括以下信息:

1)会话信息
     
     
  · 会话名和目的。
     
     
  · 会话活动时间。
     
     
  由于参与会话的资源是受限制的,因此包括以下附加信息是非常有用的。
     
     
  · 会话使用的带宽信息。
     
     
  · 会话负责人的联系信息。
     
2)媒体信息
     
     
  · 媒体类型,例如视频和音频。
     
     
  · 传输协议,例如RTP/UDP/IPH.320
     
     
  · 媒体格式,例如H.261视频和MPEG视频。
     
     
  · 多播地址和媒体传输端口(IP多播会话)。
     
     
  · 用于联系地址的媒体和传输端口的远端地址(IP单播会话)。
     
     
  SDP描述由许多文本行组成,文本行的格式为<类型>=<><类型>是一个字母,<>是结构 化的文本串,其格式依<类型>而定。

 

协议的详细说明如下:

 

Session description                                                  //格式及举例

v=  (protocol version)                              //v=0

        o=  (owner/creator and session identifier).   //o=<用户名><会话id><版本><网络类

//><地址类型><地址>

//o=sname 1234567890 0987654321 IN

//IP4 126.15.64.3

        s=  (session name)                                    //会话名

        i=* (session information)                                  //会话信息

        u=* (URI of description)                     //u=http://www.zte.com.cn/staff/sdp.ps

        e=* (email address)                                          //e=zte@isi.edu(general text如:王生)

                                                                             //e=Mr. Wang<wang@zte.com>

        p=* (phone number)                                  //p=+86-0755-26773000-7110(wang)

                                                                             //or p=+1 617 253 6011

        c=* (connection information            -如已经包含在所有媒体中则该行不需要)

                                                            //c=<网络类型><地址信息><连接地址>

                                                                             //多点会议包括TTL

                                                            //连接地址: <base multicast

                                                            //address>/<ttl>/<number of addresses>

                                                                             //c=IN IP4 224.2.13.23/127

                                                                             //c=IN IP4 224.2.1.1/127/3

        b=* (bandwidth information)                   //b=<修改量(CT Conference Total

                                                                   //IAS Application-specific Max)>:<带宽

                                                                       //值(kb/s>

                                                                       //b=CT:120

One or more time descriptions (see below)

        z=* (time zone adjustments)                       //时区调整

        k=* (encryption key)                                 //k=<方法>:<密钥>k=<方法>

        a=* (zero or more session attribute lines)     //a=<属性>  a=<属性>:<>

Zero or more media descriptions (see below)      

 

各行严格按顺序,其中:

时间描述:

        t=  (time the session is active)                    //<开始时间><结束时间>,单位秒,十

                                                                       //进制NTP

                                                                       //t=2873397468 2873404969

        r=* (zero or more repeat times)                  //<重复时间><活动持续时间

                                                                       //以开始时刻为参考的偏移列表>单位秒

                                                                       //r=604800 3666 90000    或写成

                                                                       //r=7d 1h 0 25h

媒体描述:

        m=  (media name and transport address)     //m=<媒体><端口><传送><格式列表>

                                                                             //m=audio 49170 RTP/AVP 0 3

                                                                             //协议为RTP,剖面为AVP

                                                                             //参考rtp-parameters.txt

        i=* (media title媒体称呼)                         //

        c=* (connection information    – 如已经包含在会话级描述则为可选)

        b=* (bandwidth information)                      //c

        k=* (encryption key)                                 //会话级为摸认值,c

        a=* (zero or more media attribute lines)             //两种形式:(也同c)(见后说明)

                                                                             //a=<attribute>如:

                                                                             //     a=recvonly

                                                                             //a=<attribute>:<value>

 

注:v,o,s,t,m为必须的,其他项为可选。

    如果SDP语法分析器不能识别某一类型(Type),则整个描述丢失;

    如果”a=”的某属性值不理解,则予以丢失

    整个协议区分大小写

    “=”两侧不允许有空格

    会话级的描述就是媒体级描述的缺省值

    所有均格式为<type>=<value>

 

 

--------------------------------------------------------------------------------------------

这个东西让我挣扎了好久,我只能说,一个个地读出来赋值并不是一个简单的过程,或者是我太弱……

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值