大华相机RTSP无法正常拉流问题分析与解决
背景:博主在日常工作中需要对海康、大华相机进行高频次拉流,然后进行视频分析。在这一块,海康和大华的相机有一些不一样。海康相机在解码的过程中只要解码格式是对应的,很少出现问题。但在解码大华相机的时候,却出现无论怎样都无法解码的现象。
一般方案:一般情况下,我们会使用下面的rtsp格式对两大主流品牌的IP相机进行解码。
海康威视摄像头RTSP流地址:
H.265格式
rtsp://admin:密码@xxx.xxx.xxx.xxx:554/h265/ch1/main/av_stream
H.264格式
rtsp://admin:密码@xxx.xxx.xxx.xxx:554/h264/ch1/main/av_stream
大华相机:
rtsp://admin:密码@xxx.xxx.xxx.xxx:554/cam/realmonitor?channel=1&subtype=0
问题分析与解决:起初只是一台大华相机出现无法正常解码的现象,并未引起重视。只是觉得可能是相机本身的问题。后来在一个项目里,我们发现有几十台相机同时无法拉流。于是便对该问题进行分析。
1.首先,排除网络、摄像头设置、摄像头自身障碍的问题;所有相机都用大华的网页端能够正常解码,ip、端口都能够ping的通;
2.其次,排除解码端的问题;反复对比测试,限定视频流格式都无法解码;但海康和部分大华相机是可以的;虽然很希望是这一块的问题,但可惜怎么尝试都不是;
3.最后就只剩下网络问题了。这个不是指网络不通,网络不通在第一步就排查了。这一步是想对大华相机的网络头进行排查,是不是大华做了某些变动。
4.然后分别使用ffplay和gst-play-1.0对无法拉流的rtsp地址进行拉流测试;惊奇的发现,ffplay是可以的。然后怀疑是网络延时大的问题,后来也给gst拉流延时提高,发现没有。接着,排查认证问题,是不是gst不具备大华这一批次相机的认证。反复测试,发现也不是这个问题。(在这一步我耗费了很多时间,到这一步已经凌晨2点多)
5.最后,把问题定位到header,大华这块的信息在文档里根本找不到(吐槽!!!);然后,发现大华在H.265时,经常使用短头模式,在解码时必须开启。(到此问题已经彻底解决)