sdp概览
sdp会话描述符有多行用如下格式组成的文本:
<type>=<value>
等号旁边不允许留白。
sdp会话描述符有一个session-level的段,后面会接零个或者多个media-level段。session-level部分使用”v=“开始,直到第一个media-level段。每个media-level段由”m=“开始,直到下个media-level段开始或者描述符结束,下面是个例子:
v=0
o=- 3 2 IN IP4 192.168.33.117
s=CounterPath eyeBeam 1.5
c=IN IP4 192.168.33.117
t=0 0
m=audio 35650 RTP/AVP 0 8 18 101
a=alt:1 3 : sQfPf+iU /KNiTB1A 192.168.33.117 35650
a=alt:2 2 : SnxucZRo zpZgHxu2 192.168.20.1 35650
a=alt:3 1 : 8ZUJ6mxW SHFqJnjo 192.168.88.1 35650
a=fmtp:18 annexb=no
a=fmtp:101 0-15
a=rtpmap:18 G729/8000
a=rtpmap:101 telephone-event/8000
a=sendrecv
m=video 54812 RTP/AVP 115 34
a=alt:1 3 : zO/vbGtW 56vfK5Yi 192.168.33.117 54812
a=alt:2 2 : 85YBMv+X 7bQYCVFc 192.168.20.1 54812
a=alt:3 1 : GY7RIq4D WivNWaVC 192.168.88.1 54812
a=fmtp:115 QCIF=1 I=1 J=1 K=1 MaxBR=1960
a=fmtp:34 QCIF=1 CIF=1 MaxBR=1960
a=rtpmap:115 H263-1998/90000
a=rtpmap:34 H263/90000
a=sendrecv
有些参数是可选的,那么会带上*:
会话描述符
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) One or more time descriptions ("t=" and "r=" lines; see below)
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)
关于a参数,也就是属性
可以用在session-level和media-level两个层次中。格式为
a=<attribute>
a=<attribute>:<value>
例如
a=recvonly
a=orient:landscape
在media-level中a参数有如下两个较为重要的部分
a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>]
一般来说动态载荷类型用得比较多,静态一般不会使用比如u-law PCM默认就是单声道8kHz采样率,这个是用载荷类型为0就可以完全表达出来。而动态载荷类型则不然,有时候会根据网络状况调整细分参数,比如调整采样率和和编码方式。
a=fmtp:<format> <format specific parameters>
该属性值指定一个SDP不了解的特殊格式,该格式是媒体的格式的一种m参数中给出,定义指定格式的附加参数。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用