GB28181 排查

GB28181 注册成功但没有画面:INVITE、RTP 和媒体地址排查

GB28181 已注册、目录正常却没有视频时,按 INVITE 应答、SDP 媒体地址、RTP 端口、SSRC、PS 封装和播放输出逐段定位。

注册成功只说明 SIP 链路可用

上级平台显示设备在线,通常只能证明 REGISTER、鉴权和保活已经完成。目录能看到通道,也只说明设备信息已经交换;真正出画面还要经历 INVITE、SDP 协商、RTP 发送、PS 解封装、视频解码和播放器输出。

排查时不要反复修改注册参数。先记下发生问题的通道、调看时间和 Call-ID,再沿着同一次会话检查。

先画出这次调看的证据链

一条完整的实时调看至少应看到:

  1. 上级平台向目标通道发送 INVITE。
  2. 下级返回应答,SDP 中给出媒体参数。
  3. 双方确认媒体 IP、端口、传输方式、SSRC 和负载类型。
  4. RTP 包到达约定的媒体端口。
  5. RTP 中的 PS 数据可以解出视频,码率和帧数持续增长。
  6. 网关或上级平台生成可播放输出,并出现首帧。

在哪一步第一次没有证据,问题通常就位于该步骤或它的上一步。

有 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 正常,再决定保留子码流还是配置转码。

在 StreamGate 中核对国标链路StreamGate 把摄像头接入、GB28181 注册与调看、浏览器预览和运行日志放在同一套网关中,适合对照通道状态逐段确认媒体是否到达。查看 StreamGate 产品页

常见现象对应的检查位置

现象优先检查
在线但目录为空目录请求、设备编码、通道状态和上级缓存
有目录但没有 INVITE上级平台调看动作、通道 ID 和路由
有 INVITE 但无应答通道源流、下级会话日志和编码映射
已应答但收不到 RTPSDP 媒体 IP、端口、防火墙、NAT 和传输方式
有 RTP 但解不出视频SSRC、序列号、PS 封装、关键帧和视频编码
网关有视频但网页黑屏浏览器输出协议、编码兼容、HTTPS/ICE 和播放器日志

联调时应保留哪些资料

保留上级平台名称与版本、发生时间、设备与通道编码、Call-ID、INVITE/200 OK/ACK 摘要、SDP、媒体端口、短时抓包、上下级日志和源流信息。涉及公网或多网卡时,再附网络拓扑与端口映射。

这些资料足够让双方对同一次会话逐段比对,也比“注册正常但没有画面”的一句描述更容易复现。

这篇内容是否有帮助?反馈仅用于改进文章内容。