SDP 协商与编码格式

5 阅读2分钟

Skeyevss FAQ:SDP 协商与编码格式

试用安装包下载 | SMS | 在线演示

项目地址github.com/openskeye/g…


1. SDP 是什么

SDP(Session Description Protocol)描述 谁向谁发媒体、用什么 IP/端口、什么编码。国标点播中,INVITE200 OK 常携带 SDP。只盯 SIP 状态码而不看 SDP,会漏掉 地址填错 这类根因。


2. 关键字段速查

  • o=:会话发起者与版本,辅助区分是否同一呼叫的重协商;
  • s=:会话名(实现相关);
  • c=:连接地址(IP),决定 RTP 发到哪;
  • m=:媒体类型、端口、传输协议(如 RTP/AVP);
  • a=rtpmap:payload type 与编码(如 H264、PS)的映射。

3. 主码流与子码流

设备可能提供 多路 m= 或多组 payload。平台若只订阅主码流而设备只响应子码流,可能导致解码侧无数据或分辨率与预期不符。需在设备端固定码流策略或让平台支持多 SDP 解析。


4. NAT 与 c= 地址

c= 填写私网地址,而接收方在公网,则除非同一内网,否则无法收流。此类问题需回到 内外网 IP 与 WAN 开关 配置,而不是调编码参数。


5. 编码不支持

平台或浏览器侧 不支持设备声明的 payload 时,可能信令成功但播放失败。可尝试:

  • 在设备上改为 H264 Baseline 等兼容配置;
  • 关闭厂商私有封装,改用标准 PS/TS(视设备能力)。

6. 调试技巧

将 SIP 日志中的 SDP 整段复制到文本编辑器,对照网络拓扑逐行核对;变更配置后对比 前后两次 SDP 的差异,比反复重启更有效。


SDP 是 媒体契约;契约上的 IP/端口/编码写错,再完美的 SIP 状态机也播放不了。