• rtsp冷门解释


    1.a=control

    http://blog.csdn.net/u013506600/article/details/24000833

    作用指定RTSP中SETUP命令,PLAY命令对应的URL

    a=control属性可用于sessionmedia

    如果在media中存在,则内容为控制指定流的URL。在Setup时就是用这个URL

    如果在session中存在,则内容为用于aggregate controlURL。在PLAYTEARDOWN时使用。

    a=control的值可能是相对的URL,也可能是绝对的URL。判断相对还是绝对的方法参见RFC1808。(估计就是是否有串“://”)

    如果a=control的值是相对的则从Content-BaseContent-Locationrequest URL中去获得基路径。

    如果a=control的值为*,则使用的值即为Content-BaseContent-Locationrequest URL的值。

    request URLDESCRIBE时的url。因为a=control是在DESCRIBE后返回的sdp中存放的。

    CSeq:3
    
    Content-Type: application/sdp
    
    Content-Length: 659
    
    v=0
    
    o=- 1503990770399710 1 IN IP4 192.168.1.146
    
    s=
    
    i=
    
    t=0 0
    
    a=tool:LIVE555 Streaming Media v2016.08.07
    
    a=type:broadcast
    
    a=control:*
    //作用指定RTSP中SETUP命令,PLAY命令对应的URL
    //a=control属性可用于session或media
    //如果在media中存在,则内容为控制指定流的URL。在Setup时就是用这个URL。
    //如果在session中存在,则内容为用于aggregate control的URL。在PLAY,TEARDOWN时使用。
    //a=control的值可能是相对的URL,也可能是绝对的URL。判断相对还是绝对的方法参见RFC1808。(估计就是是否有串“://”)
    //如果a=control的值是相对的则从Content-Base,Content-Location,request URL中去获得基路径。
    //如果a=control的值为*,则使用的值即为Content-Base,Content-Location,request URL的值。
    //request URL指DESCRIBE时的url。因为a=control是在DESCRIBE后返回的sdp中存放的。
    
    a=range:npt=0-
    
    a=x-qt-text-nam:
    
    a=x-qt-text-inf:
    
    m=audio 0 RTP/AVP 96
    
    c=IN IP4 192.168.1.146
    
    b=AS:196608
    
    a=rtpmap:96 MPEG4-GENERIC/48000/2 
    //音频解码格式
    
    a=fmtp:96 streamtype=5;profile-level-id=1;mode=aac-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1190
    
    a=control:track1
    
    m=video 0 RTP/AVP 96
    
    c=IN IP4 192.168.1.146 
    //媒体连接数据,每个会话公告应包含一个连接描述在每个媒体描述中,单播的时候通过该IP地址发送,多播时通过TTL与IP地址共同决定那些包将被发送。会话级为媒体级的默认值。
    
    b=AS:6000000 //带宽6000000
    
    a=rtpmap:96 H264/90000 //视频编码H264,时钟频率90000
    //RTP timestamp是用时钟频率(clock rate)计算而来表示时间的。
    //RTP timestamp表示每帧的时间,由于一个帧(如I帧)可能被分成多个RTP包,所以多个相同帧的RTP timestamp相等。(可以通过每帧最后一个RTP的marker标志区别帧,但最可靠的方法是查看相同RTP timestamp包为同一帧。)
    //     两帧之间RTP timestamp的增量 = 时钟频率 / 帧率
    //其中时钟频率可从SDP中获取,如:
    //         m=video 2834 RTP/AVP 96
    //          a=rtpmap:96 H264/90000
    //其时钟频率为90000(通常视频的时钟频率),若视频帧率为25fps,则相邻帧间RTP timestamp增量值 = 90000/25 = 3600。
    //另外,通常音频的时钟频率一般为8000。
    
    a=fmtp:96 packetization-mode=1;profile-level-id=42C029;sprop-parameter-sets=Z0LAKdoC0EmwEQAAAwABAAADADKPGDKg,aM4XIA==
    
    //packetization-mode:
    //表示支持的封包模式.
    //当 packetization-mode 的值为 0 时或不存在时, 必须使用单一 NALU 单元模式.
    //当 packetization-mode 的值为 1 时必须使用非交错(non-interleaved)封包模式.
    //当 packetization-mode 的值为 2 时必须使用交错(interleaved)封包模式.
    
    //sprop-parameter-sets:
    //这个参数可以用于传输 H.264 的序列参数集和图像参数 NAL 单元. 这个参数的值采用 Base64 进行编码. 不同的参数集间用","号隔开.
    
    //profile-level-id:
    //这个参数用于指示 H.264 流的 profile 类型和级别. 由 Base16(十六进制) 表示的 3 个字节. 第一个字节表示 H.264 的 Profile 类型, 第三个字节表示 H.264 的 Profile 级别:
    
    
    e=www.fengyizhineng.com
    
    a=control:track2

    http://blog.csdn.net/yu_yuan_1314/article/details/12969777

  • 相关阅读:
    Python保留最后N个元素
    STL算法
    STL迭代器
    STL容器
    C++总结1
    牛客剑指Offer2
    Vue第一天
    UML
    Java继承和组合代码
    Java15后的sealed阻止继承滥用
  • 原文地址:https://www.cnblogs.com/baldermurphy/p/7451966.html
Copyright © 2020-2023  润新知