35293dec83
Implemented comprehensive BUBBLE protocol support for Chinese NVR/DVR cameras (ZOSI, SANNCE, ANNKE, FLOUREON, XMeye). This proprietary protocol requires HTTP with embedded credentials and special handling.
Changes:
- Added BUBBLE entries to brand databases with main/sub stream support
- Extended URL placeholder system to support {channel} syntax
- Implemented BUBBLE-specific stream generation with credential embedding
- Added BUBBLE stream detection via Content-Type: video/bubble
- Updated Frigate/Go2RTC generators to convert BUBBLE URLs to bubble:// format
- Added BUBBLE patterns to popular stream database
Technical details:
- BUBBLE uses HTTP protocol with credentials in URL (bubble://user:pass@host:port/path)
- Supports dual streams: stream=0 (main) and stream=1 (sub)
- Requires video=copy parameter for optimal performance in go2rtc
- Detection prioritized before generic HTTP checks to ensure correct identification
399 lines
7.7 KiB
JSON
399 lines
7.7 KiB
JSON
{
|
|
"brand": "Sannce",
|
|
"brand_id": "sannce",
|
|
"last_updated": "2025-10-17",
|
|
"source": "ispyconnect.com",
|
|
"entries": [
|
|
{
|
|
"models": [
|
|
"NVR",
|
|
"DVR",
|
|
"H.264",
|
|
"H.265",
|
|
"HiSilicon",
|
|
"Other"
|
|
],
|
|
"type": "BUBBLE",
|
|
"protocol": "bubble",
|
|
"port": 80,
|
|
"url": "/bubble/live?ch={channel}&stream=0",
|
|
"auth_required": true,
|
|
"notes": "Bubble Protocol - main stream (works with go2rtc bubble:// source)"
|
|
},
|
|
{
|
|
"models": [
|
|
"NVR",
|
|
"DVR",
|
|
"H.264",
|
|
"H.265",
|
|
"HiSilicon",
|
|
"Other"
|
|
],
|
|
"type": "BUBBLE",
|
|
"protocol": "bubble",
|
|
"port": 80,
|
|
"url": "/bubble/live?ch={channel}&stream=1",
|
|
"auth_required": true,
|
|
"notes": "Bubble Protocol - sub stream (lower quality)"
|
|
},
|
|
{
|
|
"models": [
|
|
"1080p",
|
|
"720 HD IP cam",
|
|
"i21 ag",
|
|
"l41GH",
|
|
"Other",
|
|
"PTZ camera",
|
|
"WIFICAM"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 10554,
|
|
"url": "/tcp/av0_0"
|
|
},
|
|
{
|
|
"models": [
|
|
"1080P",
|
|
"141FK",
|
|
"720 HD IP CAM",
|
|
"DVR",
|
|
"I71BD",
|
|
"Mark 4",
|
|
"Other"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 8554,
|
|
"url": "/Streaming/Unicast/channels/101"
|
|
},
|
|
{
|
|
"models": [
|
|
"1080P",
|
|
"121AJ",
|
|
"222",
|
|
"I41V",
|
|
"I51CL",
|
|
"I52CL",
|
|
"i61be",
|
|
"I71BD",
|
|
"IPCAM-JPEG",
|
|
"l21aj",
|
|
"Other",
|
|
"WIFICAM"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 10554,
|
|
"url": "snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"1080P",
|
|
"720 HD IP CAM",
|
|
"8CH-2P",
|
|
"DVR",
|
|
"I21AN",
|
|
"i61dx",
|
|
"Other",
|
|
"PTZ CAMERA",
|
|
"wifi nvr",
|
|
"WIFICAM"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "cgi-bin/snapshot.cgi?chn=[CHANNEL]&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"121ag",
|
|
"I21AG",
|
|
"Other",
|
|
"PTZ CAMERA"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 8554,
|
|
"url": "videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"121ag",
|
|
"DN81BJ"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 19430,
|
|
"url": "/videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"121AJ",
|
|
"i21v",
|
|
"I41V",
|
|
"i61be"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/snapshot.jpg"
|
|
},
|
|
{
|
|
"models": [
|
|
"141CB",
|
|
"720 HD IP CAM",
|
|
"I21AG",
|
|
"I21AN",
|
|
"I21AS",
|
|
"l21AN",
|
|
"PTZ CAMERA",
|
|
"WIFICAM"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 81,
|
|
"url": "videostream.cgi?rate=0&user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"5323"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/12"
|
|
},
|
|
{
|
|
"models": [
|
|
"71GL",
|
|
"i21v",
|
|
"i41ec",
|
|
"l31v"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"720 HD IP CAM",
|
|
"i21AG",
|
|
"I21AG",
|
|
"I21AN",
|
|
"Other",
|
|
"PTZ CAMERA"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 10554,
|
|
"url": "img/snapshot.cgi?size=2"
|
|
},
|
|
{
|
|
"models": [
|
|
"8ch-w",
|
|
"DVR"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/cgi-bin/snapshot.cgi?chn=3&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"8ch-w",
|
|
"DVR",
|
|
"N441H"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/cgi-bin/snapshot.cgi?chn=1&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"960p",
|
|
"l41CC"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]&password=[PASSWORD]&channel=1&stream=0.sdp?real_stream"
|
|
},
|
|
{
|
|
"models": [
|
|
"DM81Z1T"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]_password=[PASSWORD]_channel=1_stream=0.sdp"
|
|
},
|
|
{
|
|
"models": [
|
|
"DT81BF",
|
|
"I51FQ",
|
|
"i61be"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/ch0_0.h264"
|
|
},
|
|
{
|
|
"models": [
|
|
"dvr"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]_password=[PASSWORD]_channel=1_stream=1.sdp?real_stream"
|
|
},
|
|
{
|
|
"models": [
|
|
"DVR"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/cgi-bin/snapshot.cgi?chn=2&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"DVR"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/cgi-bin/snapshot.cgi?chn=4&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"DX-8104",
|
|
"I91FT"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]_password=[PASSWORD]_channel=2_stream=0.sdp"
|
|
},
|
|
{
|
|
"models": [
|
|
"i21AG"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/"
|
|
},
|
|
{
|
|
"models": [
|
|
"I21AG"
|
|
],
|
|
"type": "MJPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "videostream.cgi?user=[USERNAME]&pwd=[PASSWORD]&resolution=32&rate=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"I41CC"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]&password=[PASSWORD]&channel=1&stream=0.sdp?"
|
|
},
|
|
{
|
|
"models": [
|
|
"I41DC"
|
|
],
|
|
"type": "VLC",
|
|
"protocol": "rtsp",
|
|
"port": 0,
|
|
"url": "ch0_0.h264"
|
|
},
|
|
{
|
|
"models": [
|
|
"I41V"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]&strm=0"
|
|
},
|
|
{
|
|
"models": [
|
|
"I51BE"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]&strm=[CHANNEL]"
|
|
},
|
|
{
|
|
"models": [
|
|
"I51CS"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/1/h264major"
|
|
},
|
|
{
|
|
"models": [
|
|
"I51CS"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/live_mpeg4.sdp"
|
|
},
|
|
{
|
|
"models": [
|
|
"I51CS"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/MediaInput/mpeg4"
|
|
},
|
|
{
|
|
"models": [
|
|
"I61DD"
|
|
],
|
|
"type": "FFMPEG",
|
|
"protocol": "rtsp",
|
|
"port": 554,
|
|
"url": "/user=[USERNAME]&password=[PASSWORD]&channel=1&stream=0.sdp"
|
|
},
|
|
{
|
|
"models": [
|
|
"i61dx",
|
|
"Other"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 0,
|
|
"url": "cgi-bin/snapshot.cgi?loginuse=[USERNAME]&loginpas=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"N441K"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 80,
|
|
"url": "/cgi-bin/snapshot.cgi?chn=0&u=[USERNAME]&p=[PASSWORD]"
|
|
},
|
|
{
|
|
"models": [
|
|
"PTZ CAMERA"
|
|
],
|
|
"type": "JPEG",
|
|
"protocol": "http",
|
|
"port": 10554,
|
|
"url": "img/snapshot.cgi?size=3"
|
|
}
|
|
]
|
|
} |