注册成功只说明 SIP 链路可用
上级平台显示设备在线,通常只能证明 REGISTER、鉴权和保活已经完成。目录能看到通道,也只说明设备信息已经交换;真正出画面还要经历 INVITE、SDP 协商、RTP 发送、PS 解封装、视频解码和播放器输出。
排查时不要反复修改注册参数。先记下发生问题的通道、调看时间和 Call-ID,再沿着同一次会话检查。
先画出这次调看的证据链
一条完整的实时调看至少应看到:
- 上级平台向目标通道发送 INVITE。
- 下级返回应答,SDP 中给出媒体参数。
- 双方确认媒体 IP、端口、传输方式、SSRC 和负载类型。
- RTP 包到达约定的媒体端口。
- RTP 中的 PS 数据可以解出视频,码率和帧数持续增长。
- 网关或上级平台生成可播放输出,并出现首帧。
在哪一步第一次没有证据,问题通常就位于该步骤或它的上一步。
有 INVITE,先检查应答和 SDP
如果只有 INVITE 请求,没有 200 OK 或后续 ACK,应查看通道是否在线、源流能否打开、设备编码是否匹配,以及下级日志中的明确错误。不要只看 HTTP 或 RTSP 端口是否连通,它们不能替代本次国标会话的状态。
收到应答后,逐项核对 SDP 中的媒体 IP、端口、传输方式和 SSRC。多网卡、容器、NAT 或端口映射环境最容易把内网地址写进 SDP,导致对方按错误地址发送或接收媒体。
RTP 到不了时检查地址、端口和传输方式
先在媒体接收端确认约定端口上是否真的有数据包。完全没有 RTP,优先检查:
- SDP 中公布的是不是对方能够访问的 IP。
- UDP 端口范围是否已放行,端口映射是否同时覆盖媒体端口。
- 双方约定的是 UDP、TCP 主动还是 TCP 被动,配置是否一致。
- 同一端口是否被其他会话占用,容器端口是否正确映射到宿主机。
- 防火墙、云安全组、NAT 或多出口路由是否改变了回包路径。
抓包时应围绕本次 INVITE 的时间和媒体端口过滤,避免被其他通道的 RTP 干扰。
收到 RTP 仍没有画面,继续看 SSRC 和 PS
端口上有 UDP/TCP 数据并不代表内容正确。需要确认 RTP 头中的 SSRC 与会话约定一致,序列号和时间戳是否连续,负载是否为预期的 PS/RTP,PS 中是否能解出有效的 H.264 或 H.265 视频。
常见问题包括 SSRC 不一致、发送了错误通道的媒体、PS 封装不完整、长时间没有关键帧、源流已经断开,以及上级平台不接受当前编码。此时可以对比同一通道的 RTSP 直连结果,判断问题发生在源流还是国标封装之后。
媒体正常但网页仍黑屏
如果日志已经能看到视频帧和持续码率,问题就从国标传输转到了播放输出。继续检查网关是否生成了 WebRTC、HTTP-FLV / WS-FLV 或 HLS 地址,浏览器是否支持当前编码,以及 HTTPS、证书、ICE、端口和播放器错误。
H.265 在不同浏览器和操作系统上的支持并不一致。可以先切换到 H.264 子码流验证;若 H.264 正常,再决定保留子码流还是配置转码。
常见现象对应的检查位置
| 现象 | 优先检查 |
|---|---|
| 在线但目录为空 | 目录请求、设备编码、通道状态和上级缓存 |
| 有目录但没有 INVITE | 上级平台调看动作、通道 ID 和路由 |
| 有 INVITE 但无应答 | 通道源流、下级会话日志和编码映射 |
| 已应答但收不到 RTP | SDP 媒体 IP、端口、防火墙、NAT 和传输方式 |
| 有 RTP 但解不出视频 | SSRC、序列号、PS 封装、关键帧和视频编码 |
| 网关有视频但网页黑屏 | 浏览器输出协议、编码兼容、HTTPS/ICE 和播放器日志 |
联调时应保留哪些资料
保留上级平台名称与版本、发生时间、设备与通道编码、Call-ID、INVITE/200 OK/ACK 摘要、SDP、媒体端口、短时抓包、上下级日志和源流信息。涉及公网或多网卡时,再附网络拓扑与端口映射。
这些资料足够让双方对同一次会话逐段比对,也比“注册正常但没有画面”的一句描述更容易复现。
