网站做适配多少钱,推进门户网站建设工作,黄山市非遗网站策划书,六盘水网站建设平台如何检测一路RTSP流是否在线#xff1f;
在之前的流媒体平台方案中#xff0c;我们都是通过定时RTSP拉流的方式#xff0c;走一个完整的RTSP流程#xff1a;包括OPTIONS、DESCRIBE、SETUP、PLAY、RTP收流#xff0c;这种方式去取流#xff0c;然后取到流之后进行流解…平台如何检测一路RTSP流是否在线
在之前的流媒体平台方案中我们都是通过定时RTSP拉流的方式走一个完整的RTSP流程包括OPTIONS、DESCRIBE、SETUP、PLAY、RTP收流这种方式去取流然后取到流之后进行流解析获取到对应的音视频数据格式这就是一个完整的检测这个RTSP流是不是在线的一个方式。
这种方式有一个弊端就是对资源的消耗太大了如果说有1000个摄像头那么每一个摄像头拉一下流按照频率是5分钟300s检测一次平均每秒要检测3个摄像头那么它的不管是流量也好还是对机器性能的消耗也好都是一个比较大的占用。那么有没有一种方法不用去拉流就像ping一下的方式简单ping一下就可以获取到摄像机RTSP流的状态同时还能够把摄像机的音视频的编码情况获取到。
解决方法DESCRIBE指令
我们先看一下一个普通的DESCRIBE指令的流程报文
第一步【可直接第三步】服务端向RTSP设备发送DESCRIBE请求
DESCRIBE rtsp://192.17.1.63:554 RTSP/1.0
Accept: application/sdp
CSeq: 2
User-Agent: EasyNVR第二步【可直接第三步】RTSP设备返回401需要密码
RTSP/1.0 401 Unauthorized
CSeq: 2
WWW-Authenticate: Digest realmIP Camera(23306), noncea946c352dd3ad04cf9830d5e72ffb11e, staleFALSE
Date: Fri, Apr 10 2020 19:07:19 GMT第三步服务端向RTSP设备发送带鉴权的DESCRIBE请求
DESCRIBE rtsp://192.17.1.63:554 RTSP/1.0
Accept: application/sdp
CSeq: 3
User-Agent: EasyNVR
Authorization: Digest usernameadmin, realmIP Camera(23306), noncea946c352dd3ad04cf9830d5e72ffb11e, urirtsp://192.17.1.63:554, response8f1987b6da1aeb3f3744e1307d850281当然这里服务端也可以直接第一步就发送带鉴权的DESCRIBE请求也是合理省事的 第四步RTSP设备返回流媒体信息
RTSP/1.0 200 OK
CSeq: 3
Content-Type: application/sdp
Content-Base: rtsp://192.17.1.63:554/
Content-Length: 712v0
o- 1586545639954157 1586545639954157 IN IP4 192.17.1.63
sMedia Presentation
eNONE
bAS:5100
t0 0
acontrol:rtsp://192.17.1.63:554/
mvideo 0 RTP/AVP 96
cIN IP4 0.0.0.0
bAS:5000
arecvonly
ax-dimensions:1920,1080
acontrol:rtsp://192.17.1.63:554/trackID1
artpmap:96 H264/90000
afmtp:96 profile-level-id420029; packetization-mode1; sprop-parameter-setsZ01AKI2NQDwBE/LgLcBAQFAAAD6AAAw1DoYACYFAABfXgu8uNDAATAoAAL68F3lwoA,aO44gA
maudio 0 RTP/AVP 8
cIN IP4 0.0.0.0
bAS:50
arecvonly
acontrol:rtsp://192.17.1.63:554/trackID2
artpmap:8 PCMA/8000
aMedia_header:MEDIAINFO494D4B48010300000400000111710110401F000000FA000000000000000000000000000000000000;
aappversion:1.0这样我们就可以通过解析SDP内容得到这路RTSP流的具体媒体信息了
RTSP流检测结果
当服务端向设备发送的DESCRIBE没有得到响应可以直接将RTSP设备状态设置为设备离线网络不通当服务端向设备发送了带鉴权的DESCRIBE报文但是设备一直返回的都是“401 Unauthorized”那可以将RTSP设备状态设置为设备不可用密码错误;当服务端向设备发送了DESCRIBE也获取到了对应的SDP信息那么可以直接设置RTSP设备状态为设备在线Video:H.264/Audio:PCMA
一种简单高效的RTSP流检测机制就此形成