前言
最近在项目中遇到一个奇怪的问题,同样的SDK调用,访问海康摄像机的RTSP流,发保活OPTIONS命令保活,一个正常,而另一个一发就会被IPC断开,先看现场截图:
图1:发OPTIONS,摄像机立马断流
图2:但在另一个程序中发OPTIONS保活包又不断流
在大部分的摄像机上,都没什么问题,单单在海康的这一款摄像机中出现了这种问题,不仔细对比命令行中的输出,根本无法确定问题点,图2中的OPTIONS报文中携带了Authorization的头字段,将认证信息都带入了进来,而图1中只是简单将用户名密码在url中携带了,由此分析可以得出一个结论,海康的某些摄像机在RTSP已经经过认证之后再发RTSP命令,都必须将Authorization带上,否则摄像机直接就断开了TCP连接;
那么,我们的安防工作者经常在现场就会遇到这种一时难以摸清的问题,诸如此类的问题,我们应该怎么入手呢?
EasyRTSPClient分析工具
在之前的博客中我们也曾介绍过EasyRTSPClient:
An elegant, simple, high performance & high compatibility RTSP Client Utility,can use in RTSP Player,NVR,RTSP Relay,EasyRTSPClient can run in any platform ,such as x68/x64/Windows/Linux/Android/iOS/arm etc..,with flexible interface,EasyRTSPClient can fit almost all network IPCamera,very easy to use.
简单、稳定、高效、易用的RTSPClient工具库,支持Windows、Linux、ARM、Android、iOS等几乎所有平台,支持RTP Over TCP/UDP,支持断线重连,能够接入市面上99%以上的IPC,调用简单且成熟稳定!
对,就是这么个工具,我们在现场用来分析RTSP流播放的问题,有时候会比ffplay更好用:
- 网络问题
我们经常在出现在某一个现场摄像机无法播放,我们通常都是用一个vlc或者ffplay进行一下摄像机的播放,但有时候,这些要安装或者文件太大等各种原因,比较重,那么,我们可以用EasyRTSPClient来进行测试,确定摄像机是否能够访问;
- 报文分析
就如“前言”中提到的这种现象,我们需要以一个最快,最直接的方式能够找到问题,权限问题、错误码问题、数据超时问题等等;
- 音视频分析
我们有时需要将H.264/H.265、PCMA/PCMU/G.726/AAC这些音视频数据存储到本地,分析一下到底花屏,杂音是什么问题,什么原因,那么我们可以用EasyRTSPClient进行裸流存储,这个是ffplay不具备的功能;
工具和项目下载
项目地址:https://github.com/EasyDarwin/EasyRTSPClient
工具下载地址:https://github.com/EasyDarwin/EasyRTSPClient/releases
Elecard StreamEye Tools H.264分析工具:https://github.com/EasyDarwin/Tools
调用Usage:
EasyRTSPClient -m tcp -s yes -d rtsp://xxx
获取更多信息
QQ交流群:288214068
Copyright © EasyDarwin.org 2012-2017