全部博文(346)
分类: LINUX
2010-03-17 19:55:18
1. sdp
通过AVP后面的值判断当前的payload,
2. scrop-parameter-sets后面接的是':',而不是'=',
3.例子
v=0
o=- 2890844256 2890842807 IN IP4 204.34.34.32
s=I came from a web page
t=0 0
c=IN IP4 0.0.0.0
m=video 8002 RTP/AVP 31
a=control:rtsp://audio.com/movie.aud
m=audio 8004 RTP/AVP 3
a=control:rtsp://video.com/movie.vid
如下解释:
Protocol Version
v=
// v=0
v:该SDP协议的版本号
Origin
o=
// o=- 2890844256 2890842807 IN IP4 204.34.34.32
o:标示了该会话的全局唯一性
:地址类型 IP4/IP6
:该会话创建者的地址
Session Name
s=
// s=I came from a web page
s:会话名,每个会话仅有一个
Times, Repeat Times and Time Zones
t=
// t=0 0
t:描述该会议的开始和结束时间,如果该会议在多个不规则的时间间隔内激活,可以使用多行t:描述如果时间间隔为规则的,可以使用"r="重复定义。
Connection Data
c=
// c=IN IP4 0.0.0.0
c:连接数据,每个会话公告应包含一个连接描述在每个媒体描述中,
单播的时候通过该IP地址发送,多播时通过TTL与IP地址共同决定那些包将被发送
IP address together with TTL define which muticast pakets will be sent in this conference.
Media Announcements
m=
每个会话可以包含许多的媒体描述,
(音频/视频/应用[如:白板信息]/数据[不要向用户显示]/控制)
当有新的媒体类型出项时,这些值将被扩展。
和在第三个子项中定义的传输协议,UDP端口只能在1024-65535之间
RTP端口可以是任意有效的范围,RTCP端口定义为大于对应RTP端口的奇数
当分级的多个媒体流编码通过单一的地址发送时,我们必须指定多个端口用于传输。
采用跟"c="域中定义多个IP地址的格式一样,
m=
example: m=video 49170/2 RTP/AVP 31
定义了两对的RTP/RTCP端口,49170 19171和49172 49173
如果某个应用采用在UDP上使用单一组合了所,有媒体格式和传输协议的模式传输,简单的方法是将传输协议指定为UDP,采用格式列表区别组合的协议,区别传输类型和媒体格式是必要的。
一旦这个格式列表被限定,在这个会话过程中都将使用列表里面的有效负荷类型
,但第一个类型将被作为默认值。
如果媒体流的传输模式不是RTP/UDP,格式将在附加的文件中进行定义。
如果通过RTP传输,SDP可以提供静态和动态绑定的两种RTP编码有效负荷类型。
静态绑定类型的类型值提供确定的有效负荷类型,动态绑定必须通过后续的选项
来进一步的说明。
例如:m=video 49232 RTP/AVP 0 //定义负荷类型为0的媒体流从49232端口发送
m=video 49232 RTP/AVP 98
a=rtpmap:98 L16/16000/2 //采用采样频率为16KHZ 16bit的立体声线性编码
rtpmap属性对"m="描述的格式列表的负荷类型进行详细说明,
通用的rtpmap属性的格式为:
a=rtpmap:
对视频编码不提供该参数。
RTP格式列表没提供对每个媒体包包括几个采样点进行说明,
如果没有默认值,需要通过"ptime"说明。