Streamedian/html5_rtsp_player接海康视频遇到的坑

本文解决使用Streamedian播放海康威视RTSP视频流遇到的404错误。通过修改free.player.1.8.js脚本中OPTIONS请求的目标,从*更改为具体的RTSP地址,成功克服了海康设备不支持通配符查询的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Streamedian是一套能够让浏览器免插件播放RTSP的项目。安装了其官方的server端后有一个demo.
rtspdemo
如图,在输入处输入红框格式的RTSP地址,如官方的demo地址:

rtsp://184.72.239.149/vod/mp4:BigBuckBunny_175k.mov.

可以正常播放,但用到我的海康上就抱RTSP 404, 我的格式如下:

rtsp://admin:pass@192.168.1.50/h264/ch40/sub/av_stream

看地址很明显我这里多了权限,google了一下,html5_rtsp_player也确实有权限问题,但人家报的401错误,也不是404啊。js跟踪了一下,发现最新的版本也处理了权限问题。那不是权限问题会是其他什么

实在没办法,去研究RTSP协议吧,这张图说的比较清楚
RTSP协议
抓包软件跟踪,发现OPTIONS就卡住了,

c->s:OPTIONS * RTSP/1.0
s->c:RTSP 404

试了下官方的地址

c->s:OPTIONS rtsp://xxx.xxx.xxx.xxx/xxx RTSP/1.0
s->c:RTSP 200

看来是海康不支持*查询。
具体js跟踪就不说了,告诉大家解决方案吧。我是用的官方的demo,脚本叫free.player.1.8.js, 打开搜索’OPTIONS’ 会发现一句协议通信代码

this.sendRequest('OPTIONS', '*', {});

直接写死的,没得商量,那我也就只能直接改了

this.sendRequest('OPTIONS', this.url, {});

再访问,好了,问题解决

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值