Strix支持的7种流协议完全解析:RTSP、RTSPS、HTTP、RTMP、Bubble、DVRIP与HomeKit

发布时间:2026/10/24 1:45:26
Strix支持的7种流协议完全解析:RTSP、RTSPS、HTTP、RTMP、Bubble、DVRIP与HomeKit

【免费下载链接】Strix

Smart IP camera stream finder. Tests 102K+ URL patterns in 30 seconds. Supports 67K camera models. Generates ready Frigate/go2rtc configs.

项目地址:https://gitcode.com/gh_mirrors/strix2/Strix
点击查看免费下载

Strix 是一款智能 IP 摄像头流查找工具(Smart IP camera stream finder),内置 7 种监控流协议的完整支持:RTSP、RTSPS、HTTP、RTMP、Bubble、DVRIP 与 HomeKit。它能在 30 秒内并行测试 102K+ 条 URL 模式,覆盖 67K 种摄像头型号,并自动生成 Frigate / go2rtc 配置。本文将逐一拆解这 7 种流协议的工作原理、默认端口与典型 URL 形态,帮你彻底看懂 Strix 是如何"盲测"出摄像头真实视频流的。

📋 七大流协议速览表

先上一张总览图,所有端口的默认值都来自 pkg/camdb/streams.go 中的协议端口映射表:

协议默认端口传输层典型设备 / 场景
RTSP554TCP/UDP绝大多数 IP 摄像头、NVR
RTSPS322TCP(TLS 加密)RTSP over TLS,隐私敏感场景
HTTP/HTTPS80 / 443TCPMJPEG、JPEG 快照、HLS、MPEG-TS
RTMP1935TCP部分国产 NVR 的直播通道
Bubble80TCP(HTTP 握手 + XML)XMeye / NetSurveillance 系摄像头
DVRIP34567TCP(Sofia 私有协议)支持 Sofia 协议的 DVR/NVR
HomeKit51826mDNS + HAPApple 家庭生态摄像头、门铃

💡 官方对 7 种协议的说明见 README.md 的 Supported protocols 一节。

1️⃣ RTSP:监控摄像头的绝对主力

RTSP(Real Time Streaming Protocol)是监控摄像头最通用的取流协议,默认端口554。海康、大华等主流品牌的摄像头几乎都支持。

Strix 对 RTSP 的验证非常严谨——它执行Dial + Describe两步握手,一次通过意味着四件事全部成立:端口开放、RTSP 服务有响应、认证凭据正确、成功拿到 SDP 媒体描述,见 pkg/tester/source.go。

典型 URL 形态(凭据部分由 Strix 用你填写的账号密码自动填充):

rtsp://admin:pass@192.168.1.100:554/Streaming/Channels/101

这里有个关键机制:摄像头数据库中的 URL 模式带有占位符,如[USERNAME]、[PASSWORD]、[CHANNEL]、[AUTH](Base64 认证串)。你输入凭据和通道号后,Strix 会把这些占位符批量替换为真实值,生成一条条可直接测试的完整 URL,替换逻辑见 pkg/camdb/streams.go。

2️⃣ RTSPS:加密版的 RTSP

RTSPS 就是跑在 TLS 上的 RTSP,默认端口322,适合对外网或隐私敏感场景。Strix 为它注册了与 RTSP 相同的处理器(rtsps,另兼容rtspx变体),注册代码在 pkg/tester/source.go。

对新手来说只需记住:如果 554 打不通,可以试试 322,两者 URL 写法几乎一致,只是 scheme 换成rtsps://。

3️⃣ HTTP:被低估的视频通道

很多摄像头其实把视频"藏"在普通 HTTP 端口(80/443)后面。Strix 的 HTTP 处理器会先发起 GET 请求,再根据返回的Content-Type自动识别流类型,逻辑在 pkg/tester/source_http.go:

返回类型Strix 判定为说明
image/jpegJPEG 快照单帧静态图
multipart/x-mixed-replaceMJPEG 流多帧 JPEG 连续推送,低延迟
application/vnd.apple.mpegurl或路径含.m3u8HLS 流分片播放,移动端友好
其他魔数嗅探自动识别 MPEG-TS 等封装格式

它还同时支持 Basic 和 Digest 两种 HTTP 认证,因此带登录鉴权的 Web 取流地址也能直接测试。

4️⃣ RTMP:NVR 的"直播通道"

RTMP 是直播行业的老牌协议,默认端口1935。在安防领域,部分国产 NVR会额外开放 RTMP 推/拉流通道。Strix 通过DialPlay完成三步验证:TCP 连接、RTMP 握手、发送 play 播放命令,见 pkg/tester/source.go。

典型 URL 形态:

rtmp://admin:pass@192.168.1.100:1935/bcs/channel01_main

小提示:RTMP 流通常只有主码流,且 Frigate 生态更偏好 RTSP,所以如果一台设备同时有 RTSP 和 RTMP,优先选 RTSP。

5️⃣ Bubble:XMeye 系摄像头的私有协议

Bubble 协议用于 XMeye / NetSurveillance 系(部分小品牌)摄像头,走80 端口,本质是 TCP 长连接 + HTTP 风格握手 + XML 描述交换,Strix 的处理器会依次完成连接、握手、XML 解析与认证,见 pkg/tester/source.go。

它有两个"脾气"值得注意:

  • URL 必须显式带端口:Bubble 是裸 TCP 拨号,没有默认端口兜底逻辑,所以在 pkg/camdb/streams.go 中被标记为端口必填协议,形如bubble://admin:pass@192.168.1.100:80/bubble/live?ch=0&stream=0;
  • 生成 Frigate 配置时要加?mp4:因为 Bubble 流没有标准 RTP 封装,go2rtc 转流时需要 MP4 分片,这个细节已写死在 pkg/generate/config.go 与 pkg/generate/config.go,用户完全无感。

6️⃣ DVRIP:Sofia 协议直连 DVR/NVR

DVRIP 针对的是 Sofia 私有协议的 DVR/NVR 设备,默认端口34567。Strix 的处理器dvripHandler会在一次连接内完成:TCP 连接 →Sofia MD5 认证→OPMonitor 流协商,链路完整才能取到流,见 pkg/tester/source.go。

URL 通过查询参数指定通道与码流:

dvrip://admin:pass@192.168.1.100:34567?channel=0&subtype=0

channel=0&subtype=0即第 1 通道主码流。

7️⃣ HomeKit:Apple 摄像头免猜端口

Apple HomeKit 摄像头(如部分门铃)不走传统取流端口,而是通过mDNS + HAP 协议通信,服务端口通常为51826。Strix 的处理分两步:

① 发现:探针向多播地址224.0.0.251:5353发送_hap._tcp.local查询,解析应答中的 TXT 记录——ci=17表示摄像头、ci=18表示门铃、sf=0表示已配对,实现细节在 pkg/probe/mdns.go。探测到即标记为 HomeKit 类型,见 internal/probe/probe.go。

② 配对:在界面输入设备 ID 和配对码(PIN),后端拼出homekit://IP:端口?device_id=…&pin=…完成 HAP 配对,见 internal/homekit/homekit.go。配对后测试环节直接调用 HAP 的GetImage(1920,1080)拉取一张 JPEG 快照验证连通性,见 pkg/tester/worker_homekit.go。

🎁 附赠:ONVIF 自动发现(协议之外的隐藏大招)

虽然不在 7 种协议之列,ONVIF 是 Strix 探测阶段的最高优先级检测项。探针向ip:3702发送 WS-Discovery 的 UDP 探测报文,若设备应答,即自动获得其 HTTP 服务地址、名称与硬件信息,见 pkg/probe/onvif.go。

更妙的是:测试阶段onvif://地址会逐个解析所有 ONVIF Profile,把每个 Profile 反查成真实 RTSP 地址并实测,每个 Profile 会同时产出onvif://和rtsp://两条结果,见 pkg/tester/source_onvif.go。也就是说——支持 ONVIF 的摄像头往往连 URL 都不用猜。

⚡ 这些协议如何被 30 秒批量验证

理解单协议之后,看看 Strix 把它们串起来的流水线:

  1. 端口预筛:100ms 内并行扫描摄像头数据库中出现过的所有端口(含 34567、51826 等冷门端口,兜底列表见 internal/probe/probe.go),只保留开放端口上的 URL,见 pkg/camdb/streams.go;
  2. 20 个并发 Worker瓜分全部 URL,按 scheme 分发到对应协议处理器,见 pkg/tester/worker.go;
  3. 每个成功的流都会截取首个关键帧生成截图(H.264/H.265 帧经 ffmpeg 转 JPEG),并记录编码器、分辨率与延迟,见 pkg/tester/worker.go。

最终你在结果页看到的是:每条成功 URL 配一张实时截图 + 编码器 + 延迟毫秒数,一目了然。

🚀 从测试结果到 Frigate:一键生成配置

选好主/子码流后,Strix 会生成标准 Frigate 配置:摄像头经 go2rtc 以rtsp://127.0.0.1:8554/<流名>本地转流接入(Bubble 协议自动追加?mp4),支持智能合并进你已有的 Frigate 配置而不覆盖原有内容,生成逻辑见 pkg/generate/config.go。

🤔 常见问题(FAQ)

Q1:Frigate 接入到底选哪种协议?优先 RTSP。无论源头是哪种协议,配置里最终都通过 go2rtc 转成统一的本机 RTSP 供 Frigate 消费,Frigate 侧始终只用 8554 端口。

Q2:摄像头不支持 RTSP 怎么办?先选 ONVIF 预设让 Strix 自动反查 RTSP 地址;再不行就试 HTTP 预设(MJPEG / HLS / 快照都支持);国产 NVR 还可以试 RTMP。

Q3:为什么找不到 HomeKit 摄像头?需要与 Strix 同一局域网、设备已配对(sf=0),且 mDNS 未被防火墙拦截;配对还需在界面输入 PIN 码。

Q4:RTSPS 和 RTSP 我该测哪个?两个都会进测试列表,Strix 会自动按端口开放情况过滤,最终看哪条测试成功选哪条即可。


📌 想进一步动手?完整协议支持清单见 README.md,HTTP API 与二次开发说明见 DEVELOPERS.md,Web 端各协议测试页面位于 www/onvif.html 与 www/homekit.html。7 种协议、102K+ URL 模式、30 秒出结果——这就是 Strix 让"接摄像头"从玄学变成查表的原因。

【免费下载链接】Strix

Smart IP camera stream finder. Tests 102K+ URL patterns in 30 seconds. Supports 67K camera models. Generates ready Frigate/go2rtc configs.

项目地址:https://gitcode.com/gh_mirrors/strix2/Strix
点击查看免费下载
上一篇:scikit-image图像配准技术:实现精确对齐的完整指南
下一篇:Arrow 函数组合艺术:从初学者到专家的进阶之路

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考