1.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中存放的。


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