VLC的sdp文件格式分析

一概述:
SDP目的就是在媒体会话中,传递媒体流信息,允许会话描述的接收者去参与会话。SDP基本上在internet上工作。他定义了会话描述的统一格式,但并不定义多播地址的分配和SDP消息的传输,也不支持媒体编码方案的协商,这些功能均由下层传送协议完成。典型的会话传送协议包括:SAP(Session Announcement Protocol会话公告协议),SIP(Session Initiation
 Protocol,会话初始协议),RTSP,HTTP,和使用MIME的E-Mail。
SDP包括以下一些方面:

  1. 会话的名称和目的
  2. 会话存活时间
  3. 包含在会话中的媒体信息,包括:媒体类型(video,audio, etc)  传输协议(RTP/UDP/IP,H.320, etc)  媒体格式(H.261video,  MPEG video, etc)多播或远端(单播)地址和端口
  4. 为接收媒体而需的信息(addresses, ports, formats and so on)
  5. 使用的带宽信息
  6. 可信赖的接洽信息(Contact information)

二 sdp规格:

SDP会话描述由多行<type&gt;=<value>组成。整个协议区分大小写。“=”两侧不允许有空格。
<type>是一个字符
<value>是一个字符串
<type>格式
SDP会话描述由一个会话级描述(session_level description)和多个媒体级描述(media_level description)组成。
会话级(session_level)的作用域是整个会话。其位置是从’v=’行开始到第一个媒体描述为止。媒体级(media_level)描述是对单个的媒体流进行描述(例如传送单个音频或者视频的vlc sdp文件只有短短的几句话,从m=开始,这其实就是个媒体机描述),其位置是从’m=’行开始到下一个媒体描述为止。
总之,除非媒体部分重载,会话级的值是各个媒体的缺省默认值(就是说媒体级描述其实也是一个会话级描述,只不过没写出来的会话级描述参数都用的缺省值)。


SDP的结构如下:
Sessiondescription
        v=  (protocol version)
        o= (owner/creator and session identifier).
        s= (session name)

        i=* (session information)
        u=* (URI of description)
        e=* (email address)
        p=* (phone number)
        c=* (connection information - notrequired if included in all media)
        b=* (bandwidth information)
        One or more time descriptions (seebelow)
        z=* (time zone adjustments)
        k=* (encryption key)
        a=* (zero or more session attributelines)
        Zero or more media descriptions (seebelow)
 
Time description
       t=  (time the session is active)
        r=* (zero or more repeat times)
 
Media description
        m= (media name and transport address)
        i=* (media title)
        c=* (connection information - optionalif included at session-level)
        b=* (bandwidth information)
        k=* (encryption key)
        a=* (zero or more media attributelines)

上面的有些行是必需有的,有些行是可选的。可选的行有*号标记。必需的是v,o,s,t,m(这是对于会话级描述和媒体及描述总体而言的,对于媒体级描述而言只有m=是必须的)。注意所有的描述项必须按照上面的顺序给出。

举例:
1.媒体级会话VLC播放264视频的sdp文件
m=video 1234 RTP/AVP 96
a=rtpmap:96 H264
a=framerate:15
c=IN IP4 172.18.168.45
详细:http://blog.csdn.net/zhangjikuan/article/details/27378237
2.媒体级会话VLC播放g711音频的sdp文件
m=audio 8888 RTP/AVP 0   
a=rtpmap:0 pcma/8000/1                          这地方是a率压缩方式;pcmu就是u率型
a=framerate:25                                 8000/25=320Byte    每个rtp包的音频数据为320byte   时间戳增值为320
c=IN IP4 192.168.1.230
详细:http://blog.csdn.net/zhangjikuan/article/details/27379201
如果是同时播放音频和视频流只要把这两个媒体级会话合在一个sdp文件中就好了

3.点播mp4文件,MS_H返回给终端的sdp信息

v=0
o=HWPSS 3427743244 1084119141 IN IP4 127.0.0.1
s=test1.mp4 
test1.mp4:媒体文件名
c=IN IP4 0.0.0.0
t=0 0
a=control:*
a=range:npt=0-44.000000
44.000000:mvhd原子:ntohl (movie_header->duration)/ ntohl(movie_header->time_scale)
 

转载:https://blog.csdn.net/zhangjikuan/article/details/27367437

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值