排查点播错误你首先要清除点播的基本流程,一般的流程如下:
@startuml
"WEB用户" -> "WVP-PRO": 1. 发起点播请求
"设备" <- "WVP-PRO": 2. Invite(携带SDP消息体)
"设备" --> "WVP-PRO": 3. 200OK(携带SDP消息体)
"设备" <-- "WVP-PRO": 4. Ack
"设备" -> "ZLMediaKit": 5. 发送实时流
"WVP-PRO" <- "ZLMediaKit": 6. 流改变事件
"WEB用户" <-- "WVP-PRO": 7. 回复流播放地址(携带流地址)
"WVP-PRO" <- "ZLMediaKit": 8. 无人观看事件
"设备" <- "WVP-PRO": 9 Bye消息
"设备" --> "WVP-PRO": 10 200OK
@enduml
针对几种常见的错误,我们来分析一下,也方便大家对号入座解决常见的问题
这个错误一般表现为点击"播放"按钮后很快得到一个错误。
400错误码
出现400错误玛时一般是这样的流程是这样的
@startuml
"WEB用户" -> "WVP-PRO": 1. 发起点播请求
"设备" <- "WVP-PRO": 2. Invite(携带SDP消息体)
"设备" --> "WVP-PRO": 3. 400错误
@enduml
此时通常是设备认为WVP发送了错误的消息给它,它认为消息不全或者错误所以直接返回400错误,此时我们需要抓包来分析是否缺失了内容,也可以直接联系对方询问为什么返回了400。 WVP不能保证兼容所有的设备,有些实现不规范的设备可能在对接时就会出现上述问题,你可以联系作者帮忙对接。
500错误码
500或者大于500小于600的错误码一般多是设备内部出了问题,解决方式有两个,第一种直接联系设备/平台客服寻求解决;第二种,如果你有确定可以对接这个设备的平台那么可以把对接这个平台的抓包和对接wvp的抓包同时发送给我,我来尝试解决。
点播超时的情况大致分为两种:点播超时和收流超时
大部分时候是原因2,所以遇到这个错误我们首先要排查我们我的网路,如果你是公网部署,那么也可能时心跳周期太长,导致的路由NAT失效,WVP的消息无法通道原来的IP端口号发送给设备。
针对这些可能的错误原因我建议的排查顺序: