sdp 协议一

在当时基于网络实现的多媒体技术越来越普遍的时候, 急切需要一个标准来描述多媒体的流信息,sdp便是这些标准的一份子。

sdp 只是一种基准格式协议,不涉及传输协议, 但是很多传输协议都采用了 sdp 格式来做信息的传输格式,下面就是这些协议的说明。

  • sip 会话交互协议使用 sdp 格式 来完成 创建 修改和结束会话的通信
  • rtsp 使用 sdp 格式来完成多媒体流的描述
  • 电子邮箱和万维网也使用了 application/sdp 来做数据说明传输说明
  • 组播会议通信的会话描述

一个sdp中有以下部分

  • 会话名称和目的
  • 会话使能时间点
  • 该会话包含的媒体信息
  • 处理媒体需要的参数(地址,端口,格式等)

一些资源可能有些特定的描述,也可以可能需要扩展描写信息,如:

  • 会话需要使用的宽带信息
  • 会话负责人的联系信息
    通常,可能对加入会话的成员还需要一些认证信息。

多媒体相关参数

  • 多媒体的类型(视频, 音频等)
  • 传输协议(RTP/UDP/IP, H.320等)
  • 多媒体的数据格式(H.261 , mpeg 等)
    如果多媒体是组播,还需要
  • 组播地址
  • 组播端口
    如果是单播,需要
  • 媒体的地址
  • 媒体的端口

会话可能有时间上的限制,比如数据包的有效时间,sdp 可以传输:

  • 限制会话的开始和结束时间的任意列表
  • 对于每个范围,请重复以下时间,例如“每个星期三上午10点 一小时”

sdp 特性

  • sdp包是指Content-Type为application/sdp的包
Content-Type: application/sdp

sdp数据的基本格式为:

<type>=<value>
参数描述是否必选备注
v=(protocol version)
o=(originator and session identifier)
s=(session name)
i=*(session information)
u=*(URI of description)
e=*(email address)
p=*(phone number)
c=*(connection information – not required if included in all media)
b=*(zero or more bandwidth information lines)
z=*(time zone adjustments)
k=*(encryption key)
a=*(zero or more session attribute lines)

时间描述:

参数描述是否必选备注
t=(time the session is active)
r=*(zero or more repeat times)

数据流描述,数据流的描述可以多组,可以没有:

参数描述是否必选备注
m=(media name and transport address)
i=*(media title)
c=*(connection information – optional if included at session level)
b=*(zero or more bandwidth information lines)
k=*(encryption key)
a=*(zero or more media attribute lines)

注意: 上面的描述虽然很多是可选的,但是顺序不能换,官方文档说,这样既可以简化解析器又可以让错误检测规则加强。

这里的类型字母必须是小写,并且不会做大写的扩展,如果遇到不是小写的类型的字母或者其他不能识别的类型字母,sdp的解析器就会忽略掉。
sdp 还可以使用 a= 来完成扩展,如果sdp解析器不知道这些扩展属性,sdp解析器就会放弃扩展属性。

c= 和 a= 参数的会在所有的流起作用,除非被后面相同的参数覆盖。
像会话名和会话信息都是文本字段,使用八进制的字符串记录的,除了 0x00,0x0a换行,0x0d回车字符都可以包括。
会话 CRLF(0x0d0a) 来结束一个记录。当然,如果存在 a=charset 描述,那编码可能就不同了。


参考

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值