流媒体之SDP

1、SDP简介

       SDP(Session Description Protocol),会话描述协议。是描述流媒体初始化参数的格式,由IETF作为RFC 4566颁布。主要用于两个会话实体之间的媒体协商。

       什么叫会话呢,比如一次网络电话、一次电话会议、一次视频聊天,这些都可以称之为一次会话。

那为什么要去发这个描述文本呢,主要是为了解决参与会话的各成员之间能力不对等的问题,如果参加本次通话的成员都支持高质量的通话,但是我们没有去进行协议,为了兼容性,使用的都是普通质量的通话格式,这样就很浪费资源了。所以SDP的作用还是很有必要的。

       SDP 完全是一种会话描述格式,它不属于传输协议,它只使用不同的适当的传输协议,包括会话通知协议(SAP)、会话初始协议(SIP)、实时流协议(RTSP)、MIME 扩展协议的电子邮件以及超文本传输协议(HTTP)。SDP协议也是基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围。SDP 不支持会话内容或媒体编码的协商,所以在流媒体中只用来描述媒体信息。媒体协商这一块要用RTSP来实现。

 

2、SDP结构

       SDP描述由许多文本行组成,文本行的格式为<类型>=<值>,<类型>是一个字母,<值>是结构化的文本串,其格式依<类型>而定。

<type>=<value>

 

3、SDP的文本信息

(1)会话名称和意图描述

  • v = (协议版本)
  • o = (所有者/创建者和会话标识符)
  • s = (会话名称)
  • i = * (会话信息)
  • u = * (URI 描述)
  • e = * (Email 地址)
  • p = * (电话号码)
  • c = * (连接信息 ― 如果包含在所有媒体中,则不需要该字段)
  • b = * (带宽信息)

(2)时间描述

  • t = (会话活动时间)
  • r = * (0或多次重复次数)

(3)媒体描述

  • m = (媒体名称和传输地址)
  • i = * (媒体标题)
  • c = * (连接信息 — 如果包含在会话层则该字段可选)
  • b = * (带宽信息)
  • k = * (加密密钥)
  • a = * (0 个或多个会话属性行)

 

4、实例

 

猜你喜欢

转载自blog.csdn.net/King_weng/article/details/107668880