diff --git a/CHANGELOG.md b/CHANGELOG.md index 173ca90..df304b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.7] - 2025-11-23 + +### Fixed +- Fixed channel numbering for Hikvision-style cameras (reported by @sergbond_com) +- Removed invalid test data from Hikvision database +- Fixed brand+model search matching in stream discovery + +### Added +- Universal `[CHANNEL+1]` placeholder support for flexible channel numbering +- Support for both 0-based (channel=0 → 101) and 1-based (channel=1 → 101) channel selection +- Added 6 high-priority Hikvision patterns to popular stream patterns database + +### Changed +- Updated 14 camera brands with universal channel patterns (Hikvision, Hiwatch, Annke, Swann, Abus, 7links, LevelOne, AlienDVR, Oswoo, AV102IP-40, Acvil, TBKVision, Deltaco, Night Owl) +- Hikvision: replaced 10 hardcoded patterns with 6 universal patterns +- Hiwatch: replaced 4 hardcoded patterns with 8 universal patterns (including ISAPI variants) +- Universal patterns now tested first for faster discovery, hardcoded patterns kept as fallback +- Improved stream discovery performance with intelligent pattern ordering + +### Technical +- Added support for `[CHANNEL+1]`, `[channel+1]`, `{CHANNEL+1}`, `{channel+1}` placeholders in URL builder +- Modified 16 files: +2448 additions, -1954 deletions + ## [0.1.0] - 2025-11-06 ### Added diff --git a/cmd/strix/main.go b/cmd/strix/main.go index acddbbb..0ce8160 100644 --- a/cmd/strix/main.go +++ b/cmd/strix/main.go @@ -20,7 +20,7 @@ import ( const ( // Version is the application version - Version = "1.0.4" + Version = "1.0.7" // Banner is the application banner Banner = ` diff --git a/data/brands/7links.json b/data/brands/7links.json index 3e23345..a4b6367 100644 --- a/data/brands/7links.json +++ b/data/brands/7links.json @@ -4,6 +4,42 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "3628-675", @@ -313,15 +349,6 @@ "port": 0, "url": "" }, - { - "models": [ - "IPC-300" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 8554, - "url": "/Streaming/Channels/101" - }, { "models": [ "IPC-340HD", @@ -465,15 +492,6 @@ "port": 0, "url": "snapshot.jpg" }, - { - "models": [ - "IPC-740" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 8554, - "url": "/Streaming/Channels/102" - }, { "models": [ "IP-CAM", @@ -631,16 +649,6 @@ "port": 80, "url": "/videostream.asf?user=[USERNAME]&pwd=[PASSWORD]&resolution=320x240" }, - { - "models": [ - "PX3615", - "SK7008-T1F1" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/channels/401" - }, { "models": [ "PX-3615-675" @@ -722,6 +730,34 @@ "protocol": "http", "port": 82, "url": "/cgi/mjpg/mjpg.cgi" + }, + { + "models": [ + "IPC-300" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/101" + }, + { + "models": [ + "IPC-740" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "PX3615", + "SK7008-T1F1" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/channels/401" } ] } \ No newline at end of file diff --git a/data/brands/abus.json b/data/brands/abus.json index a10e774..c1df8cd 100644 --- a/data/brands/abus.json +++ b/data/brands/abus.json @@ -4,6 +4,42 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "10550", @@ -320,31 +356,6 @@ "port": 554, "url": "/s2" }, - { - "models": [ - "IPCA53000", - "IPCB42510B", - "IPCB44510A", - "IPCB64515B" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/102" - }, - { - "models": [ - "IPCB42550", - "IPCB78520", - "NVR10030", - "TVIP41500", - "TVIP52500" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/101" - }, { "models": [ "IPCB54611B", @@ -635,6 +646,31 @@ "protocol": "rtsp", "port": 554, "url": "/mpeg4/media.amp?resolution=640x480" + }, + { + "models": [ + "IPCA53000", + "IPCB42510B", + "IPCB44510A", + "IPCB64515B" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "IPCB42550", + "IPCB78520", + "NVR10030", + "TVIP41500", + "TVIP52500" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/101" } ] } \ No newline at end of file diff --git a/data/brands/acvil.json b/data/brands/acvil.json index 147ab9f..907c24f 100644 --- a/data/brands/acvil.json +++ b/data/brands/acvil.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "WIFI-5MP-30" diff --git a/data/brands/aliendvr.json b/data/brands/aliendvr.json index 08bc3fe..b2f7d4a 100644 --- a/data/brands/aliendvr.json +++ b/data/brands/aliendvr.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]01" + }, { "models": [ "mega216" diff --git a/data/brands/annke.json b/data/brands/annke.json index 114f226..5ee9ca1 100644 --- a/data/brands/annke.json +++ b/data/brands/annke.json @@ -4,6 +4,42 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "NVR", @@ -220,55 +256,6 @@ "port": 0, "url": "snapshot.jpg?user=[USERNAME]&pwd=[PASSWORD]&strm=[CHANNEL]" }, - { - "models": [ - "141CS", - "151DB", - "151de", - "151dj", - "151DM", - "191BS", - "2MP", - "4MP Bullet", - "4MP DOME", - "720P", - "AC500", - "AK-N48PIA0-68DT", - "c500", - "C800", - "DE81GB", - "DN41R", - "DN81R", - "DVR", - "DW81KD", - "i15dx", - "i51dm", - "I51DS", - "I51DX", - "I61BK", - "I61DR", - "I61FC", - "I61G", - "I91BD", - "I91BF", - "I91BM", - "I91F", - "l51DM", - "N481Y", - "N48PI", - "NC400", - "NC800", - "NCPT500", - "Other", - "P01", - "POE", - "VIEW" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/101" - }, { "models": [ "141CS", @@ -498,39 +485,6 @@ "port": 554, "url": "/onvif2" }, - { - "models": [ - "191BS", - "AC500", - "c800", - "C800-4k", - "I51DX", - "I91BF", - "NC800" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/102" - }, - { - "models": [ - "191df" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/channels/102" - }, - { - "models": [ - "191df" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/channels/101" - }, { "models": [ "2MP", @@ -659,15 +613,6 @@ "port": 80, "url": "/cgi-bin/snapshot.cgi?chn=4&u=[USERNAME]&p=[PASSWORD]" }, - { - "models": [ - "DVR" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/201" - }, { "models": [ "h264", @@ -851,6 +796,97 @@ "protocol": "rtsp", "port": 0, "url": "/h264/ch1/main/av_stream" + }, + { + "models": [ + "141CS", + "151DB", + "151de", + "151dj", + "151DM", + "191BS", + "2MP", + "4MP Bullet", + "4MP DOME", + "720P", + "AC500", + "AK-N48PIA0-68DT", + "c500", + "C800", + "DE81GB", + "DN41R", + "DN81R", + "DVR", + "DW81KD", + "i15dx", + "i51dm", + "I51DS", + "I51DX", + "I61BK", + "I61DR", + "I61FC", + "I61G", + "I91BD", + "I91BF", + "I91BM", + "I91F", + "l51DM", + "N481Y", + "N48PI", + "NC400", + "NC800", + "NCPT500", + "Other", + "P01", + "POE", + "VIEW" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/101" + }, + { + "models": [ + "191BS", + "AC500", + "c800", + "C800-4k", + "I51DX", + "I91BF", + "NC800" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "191df" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/channels/102" + }, + { + "models": [ + "191df" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/channels/101" + }, + { + "models": [ + "DVR" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/201" } ] } \ No newline at end of file diff --git a/data/brands/av102ip-40.json b/data/brands/av102ip-40.json index 7dd5a85..795fbfc 100644 --- a/data/brands/av102ip-40.json +++ b/data/brands/av102ip-40.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]01" + }, { "models": [ "Other" diff --git a/data/brands/deltaco.json b/data/brands/deltaco.json index 7473574..0770b24 100644 --- a/data/brands/deltaco.json +++ b/data/brands/deltaco.json @@ -4,6 +4,42 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 8554, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "Outdoor Smart Home Camera", diff --git a/data/brands/hikvision.json b/data/brands/hikvision.json index a5232b2..df21dc6 100644 --- a/data/brands/hikvision.json +++ b/data/brands/hikvision.json @@ -6,671 +6,57 @@ "entries": [ { "models": [ - "DS-2CD2086G2-I", - "000", - "00001", - "1080P", - "16CH-TVI", - "2021", - "2032", - "2032-1080P", - "2120", - "2123", - "2135", - "223", - "225", - "226", - "228", - "229", - "22CD1853F-E", - "2345", - "2CD1023", - "2CD1323G0E-I", - "2CD2025fwd-i", - "2CD2032-I", - "2CD2035-I", - "2CD2042WD", - "2CD2043G0", - "2CD2121G0", - "2CD2121G0-I/2AX", - "2cd2122fwd-is", - "2CD2125FWD-I", - "2CD-2132-IS", - "2CD2135FWD-I", - "2CD2142", - "2CD-2142", - "2CD2145", - "2CD2155", - "2CD2335-I", - "2CD2342WD", - "2CD2355FWD-I", - "2CD2365G1", - "2CD2385FWD-I", - "2CD2385G1-I", - "2cd244...", - "2CD2455FWD-IW", - "2CD2520F", - "2cd-2622", - "2CD2635F-IS", - "2CD2T65G1-I8", - "2CD2T85FWD-I8", - "2CD4A65F", - "2DC2402IW-DE3", - "2DE4A", - "2DE7120IW", - "2DF8223I-AELW", - "2G 8MP", - "2MP", - "2MP Camera", - "3335-I", - "4 mm", - "4185F", - "444", - "449472414", - "B159H", - "blah", - "C34074916", - "c3w", - "C6N", - "C800", - "Cam3", - "CCTV", - "cd2123", - "CDT55", - "Count", - "CS-C6c", - "D120", - "D2S4B", - "dacha", - "DARKFIGHTER", - "DB-120a-iw", - "DC-2CD2042WD-I", - "DC-2CD2412F-IW", - "DC-2CD4A5G0-IZS", - "DCIM111", - "DH-IPC-HDBW1420EP", - "DH-IPC-HDW4433C-A", - "Dome", - "DS 2CD2332.1", - "ds 7200", - "ds.2cd2012f.i", - "DS.2CD2385FWD.L", - "Ds-2232", - "DS-2CD", - "dS-2CD1013G0E-I", - "DS-2CD1021", - "DS-2CD1021-I", - "DS-2cd1021-l", - "DS-2CD1023G0E", - "DS-2CD1023G0E-I", - "DS-2CD1023G0-I", - "DS-2CD1023G0-IUF", - "DS-2CD1023G0-IUM", - "DS-2cd1023g2-liu", - "DS-2CD1027G0-L", - "DS-2CD1031-I", - "DS-2CD1041L", - "DS-2CD1043G0E-I", - "DS-2CD1043G0-I", - "DS-2CD1043G0-I - E16512577", - "DS-2CD1043G0-IUF", - "DS-2CD1043G2", - "DS-2CD1043G2-I", - "DS-2CD1043G2-IUF", - "DS-2CD1043G2-LIU", - "DS-2CD1047G0-L", - "DS-2CD1053G0-I", - "DS-2CD1057G0-L", - "DS-2CD11023G0E", - "DS-2CD1103-I", - "DS-2CD1121", - "DS-2CD1121-I", - "DS-2CD1123G0E-2", - "DS-2CD1123G0E-I", - "DS-2CD1123G0F-I", - "DS-2CD1123G2-LIU", - "DS-2CD1143G0-I", - "DS-2CD1143G2-I", - "DS-2CD1143G2-LIU", - "DS-2CD1153G0-I", - "DS-2CD1202-I3", - "DS2CD1203D", - "DS-2CD1321G0-I", - "DS-2CD1321G2-IU", - "DS-2CD1321-I", - "DS-2CD1323G0E-I", - "DS-2CD1323G0-IU", - "DS-2CD1323G2-LIU", - "ds-2cd1323g2-LIUF", - "DS-2CD1327G2-L", - "DS-2CD1341-I", - "DS-2CD1343G0-I", - "ds-2cd1343g0-iuf", - "DS-2CD1347G0-L", - "DS-2CD1347G2-LUF", - "DS-2CD1623G0-I", - "DS-2CD1623G0-IZS/UK", - "DS-2CD1643", - "DS-2CD1643G0-IZ", - "DS-2CD1743G2", - "DS-2CD1H43G0-IZ", - "DS-2CD2010F-I", - "DS2CD2012-I", - "DS-2CD201PF-I", - "DS-2CD2020F-I", - "DS-2CD2021G1", - "DS-2CD2021G1-I", - "DS-2CD2021G1-IDW1", - "DS-2CD2022-I", - "DS-2CD2022WD-I", - "DS-2CD2023G0-I", - "DS-2CD2025FWD-I", - "DS-2CD2026", - "ds-2cd2032", - "DS-2CD2032F-I", - "DS-2CD2032F-IW", - "DS-2CD2032-I", - "DS-2CD2032-I (1920X1080)", - "DS-2CD2032-I 3MP IR Waterproof POE IP cctv Camera 6mm", - "DS-2CD2035FWD-I", - "DS-2CD2035-I", - "DS-2CD2041G0-LIU", - "DS-2CD2041G1-IDW1", - "DS-2CD2042D4", - "DS-2CD2042WD-I", - "DS-2CD2043G0-1", - "DS-2CD2043G0-I", - "DS-2CD2043G2-I", - "DS-2CD2043G2-IU", - "DS-2cd2045FWD-I", - "DS-2CD2046G2-IU", - "DS-2CD2047G1-L", - "DS-2CD2047G2H-LI", - "DS-2CD2047G2-LU", - "DS-2CD2051G1-IDW1", - "DS-2CD2052-I", - "ds-2cd2055fwd", - "ds-2cd2055fwd-1", - "DS-2CD2055FWD-I", - "DS-2CD2055-I", - "DS-2CD2063G0-I", - "DS-2CD2065G1-I", - "DS-2CD2065G1-l", - "DS-2CD2083G0-I", - "DS-2CD2083G2-IU", - "DS-2CD2085FWD-I", - "DS-2CD2085G1-I", - "DS-2CD2086G2", - "DS-2CD2086G2-I", - "DS-2CD2086G2-I(U)", - "DS-2CD2086G2-IU", - "DS-2CD2087G2-LIU", - "DS-2CD2087G2-LU", - "DS-2CD2110F-I", - "DS-2CD2112F-1", - "DS-2CD2112F-I", - "DS-2CD2120F-I", - "DS-2CD2121G0-I", - "DS-2CD2122FWD", - "DS-2CD2122FWD-I", - "DS-2CD2122FWD-IS (T)", - "DS-2CD2122FWD-IW", - "DS-2CD2123G0", - "DS-2CD2123G0-IS", - "DS-2CD2123G0-IU", - "DS-2CD2123G2-I", - "DS-2CD2123G2-IS", - "DS-2CD2125FWD-I", - "DS-2CD2126G2-I", - "DS-2CD2132F", - "DS-2CD2132-I", - "DS-2CD2135F-I", - "DS-2CD2135F-IS", - "DS-2CD2141G1-IDW1", - "DS-2CD2142FWD", - "DS-2CD2142FWD-I", - "DS-2CD2142FWD-IS", - "DS-2CD2142FWD-IWS", - "DS-2CD2143G0-I", - "DS-2CD2143G0-I - 4MP", - "DS-2CD2143G0-I2", - "DS-2CD2143G0-ISCKV", - "DS-2CD2145", - "DS-2CD2145F-IS", - "DS-2CD2145FWD-I", - "ds-2cd2145fwd-is", - "DS-2CD2146G2-I", - "DS-2CD2146G2-ISU", - "DS-2CD2152F-I", - "DS-2CD2155FWD", - "DS-2CD2155FWD-1", - "DS-2CD2155FWD-I", - "DS-2CD2155FWD-I 5MP", - "DS-2CD2155FWD-IS", - "DS-2CD2163G0-I", - "DS-2CD2165G0-I", - "DS-2CD2183G0-IS", - "DS-2CD2183G2-IU", - "ds-2cd2185fwd", - "DS-2CD2185FWD-I", - "DS-2CD2185FWD-IS", - "DS-2CD2212-15", - "DS-2CD22385FWD-I", - "DS-2CD2312-I", - "DS-2CD2325FWD-I", - "DS-2CD2332-I", - "DS-2CD2342WD-I", - "DS-2CD2343G0-I", - "DS-2CD2343G2-IU", - "DS-2CD2345FWD-I", - "DS-2CD2346G1-I", - "DS-2CD2346G2-I", - "DS-2CD2346WD-I", - "DS-2CD2347G1", - "DS-2CD2347G1-L", - "DS-2CD2347G1-LU", - "DS-2CD2347G2-L", - "DS-2CD2347G2-LU", - "DS-2CD234WD-I", - "DS-2CD2355FWd", - "DS-2CD2355FWD-I", - "DS-2CD2355-I", - "DS-2CD2363G0-I", - "DS-2CD2365G1", - "DS-2CD2365G1-I", - "DS-2CD2366G2-I", - "DS-2CD2367G2P-LSU", - "DS-2CD2367G2P-LSU/SL", - "DS-2CD2383G0-I", - "DS-2CD2383G0-IU", - "DS-2CD2385FWD-I", - "DS-2CD2385G1-I", - "DS-2CD2385G1-L", - "DS-2CD2386G2-ISU/SL", - "DS-2CD2386G2-IU", - "DS-2CD2387G2", - "DS-2CD2387G2-LSU/SL", - "DS-2CD2387G2-LU", - "DS-2CD2410FD-IW", - "DS-2CD2410F-I(W)", - "ds2cd2412f-1", - "ds2cd2412f-i", - "DS-2CD2412F-I", - "DS-2CD2412F-IW", - "DS-2CD2420F-I", - "DS-2CD2420F-IW", - "DS-2CD2421G0-I", - "DS-2CD2422FWD-IW", - "DS-2CD2423G0-IW", - "DS-2CD2426G2-I", - "DS-2CD2432F-I", - "DS-2CD2432F-I(W)", - "DS-2CD2432F-IW", - "DS-2CD2442FWD", - "DS-2CD2442FWD-IW", - "DS-2CD2443G0-I", - "DS-2CD2443G0-IW", - "DS-2CD2452F-IW", - "DS-2CD2463G2-I", - "DS-2CD2483G0-IW", - "DS-2CD2512F-IS", - "DS-2CD2520F", - "ds-2cd2522", - "DS-2CD2523G0-IS", - "ds-2cd2525fwd-is", - "DS-2CD2532F", - "DS-2CD2532F-I", - "DS-2CD2532F-IS", - "DS-2CD2542FWD-IS", - "DS-2CD2543G0", - "ds-2cd2543g0-is", - "DS-2CD2543G2-IS", - "DS-2CD2543G2-ISB-2.8MM", - "DS-2CD2543GO-IWs", - "DS-2CD2546G2-IS", - "DS-2CD255FWD", - "ds-2cd255fwd-1", - "DS-2CD2563G0-IS", - "DS-2CD2620F-I", - "DS-2CD2620F-IS", - "DS-2CD2622FWD-I", - "DS-2CD2625FHWD-IZS", - "DS-2CD2625FWD-ISZ", - "ds-2CD2626", - "DS-2CD2632F-I", - "DS-2CD2632F-IS", - "DS-2CD2642FWD-I", - "DS-2CD2643G0-IZS", - "ds-2cd2643g1-izs", - "DS-2CD2643G2-IZS", - "DS-2CD2646G2-IZS", - "DS-2CD2655FWD-IZS", - "DS-2CD2663G0-IZS", - "DS-2CD2666G2T-IZS", - "DS-2CD2683G0-IZS", - "DS-2CD2685FWD-IZS", - "DS-2CD2686G2-IZS", - "DS-2CD2720F-I", - "DS-2CD2722FWD-IS", - "DS-2CD2722FWD-IZS", - "DS-2CD2723G1-IZ", - "DS-2CD2726G2-IZS", - "DS-2CD2732F-I", - "DS-2CD2732F-IS", - "DS-2CD2742FWD-IS", - "DS-2CD2743G1-IZS", - "DS-2CD2745FWD-IZS", - "DS-2CD2766G2T-IZS", - "DS-2cd2783G2-IZS", - "DS-2CD2785FWD-IZS", - "DS-2CD2786G2-IZS", - "DS-2CD2787G2HT-LIZS", - "DS-2CD2942F-IWS", - "DS-2CD2D45G1/M-D/NF", - "DS-2CD2E20F", - "DS-2CD2F22FWD", - "DS-2CD2F22FWD-I", - "DS-2CD2F22FWD-IS", - "DS-2CD2F52F-IS", - "DS-2CD2H55FWD-IZS", - "DS-2cd2H85G1-IZS", - "DS-2CD2T21G0-I", - "DS-2CD2T21G1-I", - "DS-2CD2T22WD", - "DS-2CD2T22WD-I3", - "DS-2CD2T22WD-I5", - "DS-2CD2T25FWD-I5", - "DS-2CD2T25FWD-I8", - "DS-2CD2T26G2", - "DS-2CD2T42WD-I3", - "DS-2CD2T42WD-I5", - "DS-2CD2T43G0-I5", - "DS-2CD2T45FWD-I8", - "DS-2CD2T45G0P-I", - "DS-2CD2T46G-2I", - "DS-2CD2T47G2", - "DS-2CD2T47G2-L", - "ds-2cd2t47g2p-lsu", - "DS-2CD2T63G0-I8", - "ds-2cd2t63g2-2i", - "DS-2CD2T65G1-I8", - "DS-2CD2T83G0 8MP", - "DS-2CD2T85FWD-I5", - "DS-2CD2T85FWD-I8", - "DS-2CD2T86G2", - "DS-2CD2T87G2P-LSU/SL", - "DS-2CD3021G0-I", - "DS-2CD3047G0E-LUF", - "DS-2CD3047G2-LS", - "DS-2CD3056G2-IS", - "DS-2CD3121G0-IUHK", - "DS-2CD3132", - "DS-2CD3132F-IW", - "DS-2CD3135F-I", - "DS-2CD3145F", - "DS-2CD3145FD-IWS", - "DS-2CD3145F-I", - "DS-2CD3310-I", - "DS-2CD3320D-I", - "DS-2CD3335D-I", - "DS-2CD3335-I", - "DS-2CD3336WD-I", - "DS-2CD3345F-I", - "DS-2cd3345-I", - "DS-2CD3345-I", - "DS-2CD3386", - "DS-2CD3410FD-IW", - "DS-2CD3686G2-IZS", - "DS-2CD3935FWD-IWS", - "DS-2CD3B26G2T-IZHSY", - "DS-2CD3B46G2T-IZHS", - "DS-2CD3T27EWD3-L", - "DS-2CD3T36WD-I3", - "DS-2CD3T46DWD-I5", - "DS-2CD3T46WDV3-I3", - "DS-2CD3T47EWD-L", - "DS-2CD3T56WD-13", - "DS-2CD3T86FWDA4-LS", - "DS-2CD4026FWD", - "Ds-2cd4a25fwd-iz", - "DS-2CD4A25FWD-IZ", - "DS-2CD4A25FWD-OZ", - "DS-2CD4A26FWD-IZ", - "DS-2CD4A26FWD-IZS/P", - "DS-2CD4B26FWD-IZ", - "DS-2CD5546G0-IZHS", - "DS-2CD6332FWD-IV", - "DS-2CD6362F-I", - "DS-2CD6362F-IV", - "DS-2CD6362F-IVS", - "DS-2CD6365G0E-S/RC", - "DS-2CD6365G0-IS", - "DS-2CD63C2F-IS", - "DS-2CD6412FWD-C2", - "DS-2cd654G1-IZS", - "DS-2CD6986F", - "DS-2CD6D54FWD-IZHS", - "DS-2CD6D82g0-IHS", - "DS-2CD7133-E", - "DS-2CD7A26G0/P-IZHS", - "DS-2CD853F", - "DS2CD862MF", - "DS-2CDA26G0-IZHSY", - "ds-2cgd", - "DS-2CV1021G0-IDW1", - "DS-2CV2041G2-IDW", - "ds-2cv2046g0-idw", - "DS-2CV2141G2-IDW", - "DS-2CV2Q01FD-IW", - "DS-2CV2Q21FD-IW", - "DS-2DC1001-I", - "DS-2DC2532F", - "DS-2DE1A200IW-DE3", - "DS-2DE2202I-DE3/W", - "DS-2DE2A404IW", - "DS-2DE2A404IW-DE3", - "DS-2DE2A404IW-DE3(S6)", - "DS-2DE2A404IW-DE3/W", - "DS-2DE2A404IW-DE320200822CCWRE72456274W", - "DS-2DE2C400MW-DE", - "DS-2DE3304DW-DE", - "DS-2DE3304W-DE", - "DS-2DE3304W-DE20210701CCWRG29013843W", - "DS-2DE3A400BW", - "DS-2DE3A4041W-DE/W", - "DS-2DE3A404IW-DE", - "DS-2DE3A404IW-DE/W", - "DS-2DE4215W-DE3", - "DS-2DE4220-AE", - "DS-2DE4220W-AE", - "DS-2DE4225IW-DE", - "DS-2DE4225W", - "ds-2DE4425IW-DE", - "DS-2DE4425W-DE", - "DS-2DE4582-AE", - "DS-2DE4A225IW-DE", - "DS-2DE4A425IW-DE", - "DS-2DE4A425IWG-E", - "DS-2DE5120I-AE", - "DS-2DE5174-A", - "DS-2DE5220I-AE", - "DS-2DE5225IW-AE", - "DS-2DE5425IW-AE", - "DS-2DE5432IW-AE", - "DS-2DE7120IW-A", - "DS-2DE7174-A", - "DS-2DE7184-AE", - "DS-2DE7330IW", - "DS-2DE7330IW-AE", - "DS-2DF5225X-AEL", - "DS-2DF8223I-AEL", - "DS-2DF8225IX-AEL", - "DS-2DF8236I - AEL", - "DS-2DY5223IW-DM", - "DS-2SC1Q140IZ-TE", - "DS-2SD7A26G0/P-IZHS", - "DS-2SE3C404MWG-E/14", - "DS-2SE4C425MWG-E", - "DS-2SE7C144IW-AE", - "DS-2SF8C442MXS-DLW(24F0)(P3)", - "DS-2TD1217B-6/PA", - "DS-2TD2617B-6/PA", - "DS-2TD4237-25/V2", - "DS-2XE6222F-IS", - "DS-2XM6122FWD-IM", - "DS-2XS2T41G0-ID/4G/C04S05", - "DS-2XXX", - "DS-6704", - "DS-7108HGHI-F1", - "DS-7116HGHI-K1", - "ds-7204hfhi-st", - "DS-7204HQHI-F1/N", - "DS-7204HQHI-K1", - "DS-7208HFHI-ST", - "DS-7208HGHI-SH", - "DS-7216HQHI-F2/N", - "DS-7216HWI-SH", - "DS-72xx", - "DS-7600 NI-SE P DVR", - "DS-7600 Series", - "DS-7604NI", - "DS-7608NI", - "DS-7616NI-E2/16P", - "DS-7616NI-E2-8P-A", - "DS-7732NI-I4/16P", - "DS-7732NI-I4/16P1620161216CCRR694453862WCVU", - "DS-9608NI-RT", - "DS-9632NI", - "DS-9806NI-RT", - "DSC-2CD2035", - "DS-CD1027G0-L", - "DS-CD1383G0-I", - "ds-cd4a25fwd-iz", - "DS-HD1", - "DS-I101", - "DS-I102", - "DS-I110", - "DS-i200", - "DS-I200(c)", - "DS-I200(D)", - "DS-I205", - "DS-I220", - "DS-I2212", - "DS-I250W(B)", - "DS-I400", - "DS-I453M", - "DS-IPC-B12-I", - "DS-IPC-T12H-IA", - "DS-IPC-T12HV3-IA", - "DS-IPC-T12-I", - "DS-K1T671MF", - "ds-kb6003-wip", - "DS-KB6403", - "DS-KB8102", - "DS-KB8112", - "DS-KB8112-IM", - "DS-KD8003-IME1", - "DS-KV6113-WPE1", - "DS-KV6113-WPE1(B)", - "DS-KV8113", - "DS-KV8202", - "DS-l102", - "DS-N201", - "DS-N241W", - "DT143-I20181019", - "DT2A404", - "DT385-I", - "dvr4", - "ECI-D12F2", - "ECI-T24F2", - "ECI-T44F2", - "EV1008HDX", - "Exir", - "G2 8MP", - "Gate", - "H.265", - "H.265+", - "HDTVI-8K-12FPS", - "HES328-VBZ", - "Hik", - "HIK", - "HIK-2CD1041L", - "HIKVISION DS-2CD1148-I/B", - "hikvision ds-2cd1623", - "HIKVISION DS-2CD201PF-I", - "Hikvision DS-2CD2432F-I", - "HIKVISION DS-2CD2522FWD-IS", - "HikVision DS-2CD2745FWD-IZS", - "HIKVISION DS-2CD2F22FWD-I", - "HIKVISION DS-7208HUHI-K1", - "HIKVISION DS7608", - "Hikvision HW140", - "Hikvision IP Camera", - "hilook", - "HK-2CD1041L", - "HK3335", - "HNC328-TD", - "Hnp122-IR/26X", - "hw221", - "HWC P120 D/W", - "HWI-B140H", - "HWI-B640H-V", - "HWI-D129H", - "HWI-D140h", - "HWI-D620H-Z", - "HWI-T020H", - "HWI-T220H", - "HWI-T221H", - "IF52N53-IR", - "IPAL", - "ipc d120", - "IPC3740-FM", - "IPC-8220", - "IPC-92", - "IPcam t4-p", - "IP-CAMERA", - "IPC-B121H", - "IPC-B220", - "IPC-D120", - "IPC-D121H", - "IPC-D140", - "IPC-D150H-M", - "IPC-T056-A3", - "IPC-T056c-A3", - "IPC-T221H", - "ipc-t229h", - "ipc-t240h", - "IPC-T250H", - "IR MINI BULLET", - "jarrod", - "K1T501SF", - "Leffes", - "LPR", - "mini ptz camera", - "mistnost", - "muz", - "MUZ1", - "MUZ2", - "NC304-XD", - "nc324", - "nevahgno", - "NVR", - "NVR-4CH", - "OFC", - "Other", - "PCI-T15F2SL", - "Puha", - "SH-IVB01UFE-IW", - "SkyCam", - "TF44", - "TV-IP310PI", - "VCU", - "waihi" + "ALL" ], "type": "FFMPEG", "protocol": "rtsp", "port": 0, - "url": "/Streaming/Channels/101" + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]03" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]03" }, { "models": [ @@ -1722,317 +1108,6 @@ "port": 0, "url": "/Streaming/Channels/1" }, - { - "models": [ - "1080P", - "2032", - "215", - "218", - "219", - "222", - "223", - "2385", - "2CD1323G0E-I", - "2cd2110f", - "2CD3340-FI", - "3335", - "3335-I", - "CD2020", - "cd2123", - "CHINA", - "CMIP1024", - "DC-2CD2042WD-I", - "ds kb8113", - "DS-2CD", - "DS-2CD1021-I", - "ds-2cd1023g0e-1", - "DS-2CD1023G0-IUF", - "DS-2CD1023G0-IUM", - "DS-2CD1027G0-L", - "DS-2CD1101-I", - "DS-2CD1131-I", - "DS-2CD1341-I", - "DS-2CD1343G0-I", - "ds-2cd2010f-i", - "DS-2CD2012-I", - "DS-2CD2020F-I", - "DS-2CD2021G1-I", - "DS-2CD2022WD-I", - "DS-2CD2032-I", - "DS-2CD2035FWD-I", - "DS-2CD2042WD-I", - "DS-2CD2085G1-L", - "DS-2CD2086G2-IU", - "DS-2CD2112-I", - "DS-2CD2120F-I", - "DS-2CD2132-I", - "DS-2CD2142FWD-I", - "DS-2CD2143G0-I", - "DS-2CD2145F-IS", - "DS-2CD2146-G2", - "DS-2CD2183G0-IS", - "DS-2CD2343G0-I", - "DS-2CD2343G2-IU", - "DS-2CD2347G2-LU", - "DS-2CD2355FWD-I", - "DS-2CD2355-I", - "DS-2CD2385FWD-I", - "DS-2CD2386G2-ISU/SL", - "DS-2CD2387G2-LSU/SL", - "DS-2CD2420F-IW", - "DS-2CD2421G0-IW", - "DS-2CD2432F-I", - "DS-2CD2532F-IS", - "DS-2CD2622FWD-I", - "DS-2CD2642FWD-I", - "DS-2CD2642FWD-IS", - "DS-2CD2645FWD-IZS", - "DS-2CD2646G2-IZS", - "DS-2CD2666G2T-IZS", - "DS-2CD2712F-I", - "DS-2CD2742FWD-IS", - "DS-2CD2766G2T-IZS", - "DS-2CD3T45D-I5", - "DS-2CD3T45-I5", - "DS-2CD6332FWD-IS", - "DS-2CD6412FWD-C2", - "DS-2CD7A26G0/P-IZHS", - "DS-2D", - "DS-2D54E5432IW-AE", - "DS-2DC1001-I", - "DS-2DE2202-DE3/W", - "DS-2DE2A404IW-DE3", - "DS-2DE3304W", - "DS-2DE4225IW-DE", - "DS-2DE5432IW-AE", - "DS-2DE7432IW-AE", - "DS-2TD1217-3/V1", - "DS-2TD2617B-6/PA", - "DS-7", - "DS-7216HI-SL", - "DS-7216HWI-SH", - "DS-7332HGHI-SH", - "DS-7604NI", - "DS-7608NI", - "DS-7608NI-E2", - "DS-7616", - "DS-7732NI-I4/16P", - "DS-9608NI-RT", - "DS-CD", - "DS-i200", - "DS-KD8003", - "DS-KV6113-WPE1", - "DS-KV6113-WPE1(B)", - "EV1008HDX", - "FFMPEG substream", - "GVIP2620V", - "Hik", - "HIK", - "HIKVISION DS-2CD2432F-IW", - "HIKVISION DS-7208HUHI-K1", - "HIKVISION DS7216", - "HIKVISION DS7608", - "hrome", - "IPC-B220", - "jarrod", - "NVR", - "Other", - "prohodnaya" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/Channels/102" - }, - { - "models": [ - "1080P", - "2DE7225", - "Bullet-4K", - "DC-2CD2010-I", - "DS.-2CD1410F.1W", - "DS-1676NI-E2/16P", - "ds2cd1043g2liu", - "DS2-CD2032-I", - "DS-2CD2122FWD-IS (T)", - "DS-2CD2123G2-I", - "DS-2CD2332", - "DS-2CD2342WD-I", - "DS-2CD6332FWD-IS", - "DS-2CD6365G0-IS", - "DS-2CD6412FWD-C2", - "DS-2TD2637-10/PY", - "DS-7104HWI-SH", - "DS-7108HQHI-K1", - "DS-7204HQHI", - "DS-7204HQHI-HK", - "DS-7204HQHI-K1", - "DS-7208HGHI-SH", - "DS-7208HVI-SV", - "DS-7216HGHI-E2", - "DS-7216HWI", - "DS-7232HQHI-K2", - "DS-72XX", - "DS-7608NI", - "DS-7608NI-E2", - "DS-7732NI-I4/16P", - "NVR", - "NVR-CH4", - "Other", - "TV-IP320PI" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/channels/201" - }, - { - "models": [ - "1080P", - "DS-1676NI-E2/16P", - "DS-2CD6332FWD-IS", - "DS-2CD6812D", - "DS-2DC1001-I", - "DS-2TD2617-3/V1", - "DS-7204HQHI-K1", - "DS-7208HGHI", - "DS-7208HGHI-SH", - "EV3016", - "HIKVISION DS7216", - "UNLISTED" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/Channels/501" - }, - { - "models": [ - "1080P", - "228", - "2DS-2CD2142FWD-I", - "DS.-2CD1410F.1W", - "DS-1676NI-E2/16P", - "DS-2CD6332FWD-IV", - "DS-2CD6362F-IV", - "DS-2CD6365G0-IS", - "DS-7108HGHI-F1", - "DS-7204HQHI-HK", - "DS-7204HQHI-K1", - "DS-7208HGHI", - "DS-7208HQHI-F1", - "DS-7216HUHI-K2", - "DS-72XX", - "DS-7332HGHI-SH", - "DS-I220", - "HIKVISION DS-7208HFHI-ST", - "HIKVISION DS-7208HUHI-K1", - "NVR", - "Other" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/Channels/301" - }, - { - "models": [ - "1080P", - "2035", - "2CD", - "2CD2032-L", - "2CD2442WD-I", - "Bullet", - "DM-SCB415IP-V10E", - "DS-2CD", - "DS-2CD1021-I", - "ds-2cd1023g0e-1", - "DS-2CD1023G0-IUF", - "DS-2CD1123G0E-I", - "DS-2CD1623G0-IZS/UK", - "ds-2cd2021g1-i", - "DS-2CD2035FWD-1", - "ds2cd2043g2i", - "DS-2CD2085G1-L", - "DS-2CD2110F-I", - "DS-2CD2142FWD-I", - "DS-2CD2146G2-ISU", - "DS-2CD2183G0-I", - "DS-2CD23", - "DS-2CD2332-I", - "DS-2CD2335FWD-I", - "DS-2CD2347G1-L", - "DS-2CD2355FWD-I", - "DS-2CD2385G1-I", - "DS-2CD2387G2-LSU/SL", - "DS-2CD2442FWD-IW", - "DS-2CD2443G0-IW", - "DS-2CD2625FWD-ISZ", - "DS-2CD2643G0-IZS", - "DS-2CD2T47G1-L", - "DS-2CD3025G0-I", - "DS-2CD3145G0-IS", - "DS-2CD3145GO-IS", - "DS-2CD3345-I", - "DS-2CD3786G2T-IZS", - "DS-2CD6365G0-IS", - "DS-2DF5225X-AEL", - "DS-6701HFI", - "DS-6716", - "DS-7108HGHI-E1", - "DS7116", - "DS-7204HQHI-HK", - "DS-7204HTHI-K1", - "DS-7208HGHI-SH", - "DS-7208HVI-SV", - "DS-7216HGHI-E2", - "DS-7216HGHI-SH", - "DS-7216HWI-SH", - "DS-7604NI", - "DS-7608NI-E2", - "DS-7616", - "DS-7716NI-SP/16", - "DS-8108HQHI-SH", - "DS-9664NI-I8", - "DS-Dc1121", - "DS-KB8112", - "DS-KV6113-WPE1(C)", - "DS-KV8113-WME1(C)", - "EV1016HDX", - "GPS-DVR01", - "HES324-MB", - "HIK PTZ", - "HIKISION", - "HIKVISION DS-7208HUHI-K1", - "HIKVISION HD 2.0", - "Other", - "SC-303GY-XD" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/channels/101" - }, - { - "models": [ - "1080P", - "DS-2CD2342WD-I", - "DS-2CD6332FWD-IS", - "DS-2CD6365G0-IS", - "DS-2CD6812D", - "DS-7208HGHI-SH", - "DS-7216HUHI-K2", - "DS-7604NI", - "DS-7A04HQHI-K1", - "HIKVISION DS-7208HUHI-K1", - "NVR", - "Other" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/Channels/401" - }, { "models": [ "1080P", @@ -2115,36 +1190,6 @@ "port": 0, "url": "h264" }, - { - "models": [ - "1080P", - "7608", - "CAMERAA", - "DS-1676NI-E2/16P", - "DS-2CD2347G2-LU", - "DS-2CD2620F-IS", - "DS-2CD2646G2HT-IZS", - "DS-4208HGHI-E1", - "DS-7108HGHI-F1", - "DS-7204HGHI-E1", - "DS-7204HQHI-HK", - "DS-7204HQHI-K1", - "DS-7208HGHI", - "DS-7208HGHI-SH", - "DS-7216HGHI-E2", - "DS-7332HGHI-SH", - "DS-7616", - "ds-7716ni-sp", - "DS-7716NI-SP/16", - "DVR", - "HIKVISION DS-7208HFHI-ST", - "Other" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 10554, - "url": "/Streaming/channels/401" - }, { "models": [ "1111", @@ -2277,35 +1322,6 @@ "port": 554, "url": "/" }, - { - "models": [ - "130hook", - "2CD-2142", - "DC-2CD2110F-1", - "ds2cd2043g2i", - "DS-2CD2132-I", - "DS2CD2332-I", - "DS-2CD2385G1-I", - "DS-2CD2387G2-LSU/SL", - "DS-2CD2412F-IW", - "DS-2CD2620F-I", - "DS-2CD2625FWD-ISZ", - "DS-2CD2T65FWD-I5", - "DS-2CD63C2F-IVS", - "ds-7104hghi-f1", - "DS-7204HQHI-HK", - "DS-7208HGHI", - "DS-7208HGHI-SH", - "DS-7208HQHI-K1", - "DS-7732NI-I4/16P", - "DVR", - "Other" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/channels/102" - }, { "models": [ "16CH-TVI", @@ -3030,18 +2046,6 @@ "port": 88, "url": "/videoMain" }, - { - "models": [ - "2135", - "DS-2CD", - "DS-2CD2421G0-IW", - "DS-2CD2726G2-IZS" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/103" - }, { "models": [ "2135", @@ -3864,15 +2868,6 @@ "port": 0, "url": "cam/realmonitor?channel=[CHANNEL]&subtype=00" }, - { - "models": [ - "Bullet-4K" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/102/%09rtsp://huntertech:Superuser01!@10.0.55.11:554/Streaming/Channels/101/" - }, { "models": [ "CHINA", @@ -4293,6 +3288,1056 @@ "protocol": "rtsp", "port": 0, "url": "" + }, + { + "models": [ + "DS-2CD2086G2-I", + "000", + "00001", + "1080P", + "16CH-TVI", + "2021", + "2032", + "2032-1080P", + "2120", + "2123", + "2135", + "223", + "225", + "226", + "228", + "229", + "22CD1853F-E", + "2345", + "2CD1023", + "2CD1323G0E-I", + "2CD2025fwd-i", + "2CD2032-I", + "2CD2035-I", + "2CD2042WD", + "2CD2043G0", + "2CD2121G0", + "2CD2121G0-I/2AX", + "2cd2122fwd-is", + "2CD2125FWD-I", + "2CD-2132-IS", + "2CD2135FWD-I", + "2CD2142", + "2CD-2142", + "2CD2145", + "2CD2155", + "2CD2335-I", + "2CD2342WD", + "2CD2355FWD-I", + "2CD2365G1", + "2CD2385FWD-I", + "2CD2385G1-I", + "2cd244...", + "2CD2455FWD-IW", + "2CD2520F", + "2cd-2622", + "2CD2635F-IS", + "2CD2T65G1-I8", + "2CD2T85FWD-I8", + "2CD4A65F", + "2DC2402IW-DE3", + "2DE4A", + "2DE7120IW", + "2DF8223I-AELW", + "2G 8MP", + "2MP", + "2MP Camera", + "3335-I", + "4 mm", + "4185F", + "444", + "449472414", + "B159H", + "blah", + "C34074916", + "c3w", + "C6N", + "C800", + "Cam3", + "CCTV", + "cd2123", + "CDT55", + "Count", + "CS-C6c", + "D120", + "D2S4B", + "dacha", + "DARKFIGHTER", + "DB-120a-iw", + "DC-2CD2042WD-I", + "DC-2CD2412F-IW", + "DC-2CD4A5G0-IZS", + "DCIM111", + "DH-IPC-HDBW1420EP", + "DH-IPC-HDW4433C-A", + "Dome", + "DS 2CD2332.1", + "ds 7200", + "ds.2cd2012f.i", + "DS.2CD2385FWD.L", + "Ds-2232", + "DS-2CD", + "dS-2CD1013G0E-I", + "DS-2CD1021", + "DS-2CD1021-I", + "DS-2cd1021-l", + "DS-2CD1023G0E", + "DS-2CD1023G0E-I", + "DS-2CD1023G0-I", + "DS-2CD1023G0-IUF", + "DS-2CD1023G0-IUM", + "DS-2cd1023g2-liu", + "DS-2CD1027G0-L", + "DS-2CD1031-I", + "DS-2CD1041L", + "DS-2CD1043G0E-I", + "DS-2CD1043G0-I", + "DS-2CD1043G0-I - E16512577", + "DS-2CD1043G0-IUF", + "DS-2CD1043G2", + "DS-2CD1043G2-I", + "DS-2CD1043G2-IUF", + "DS-2CD1043G2-LIU", + "DS-2CD1047G0-L", + "DS-2CD1053G0-I", + "DS-2CD1057G0-L", + "DS-2CD11023G0E", + "DS-2CD1103-I", + "DS-2CD1121", + "DS-2CD1121-I", + "DS-2CD1123G0E-2", + "DS-2CD1123G0E-I", + "DS-2CD1123G0F-I", + "DS-2CD1123G2-LIU", + "DS-2CD1143G0-I", + "DS-2CD1143G2-I", + "DS-2CD1143G2-LIU", + "DS-2CD1153G0-I", + "DS-2CD1202-I3", + "DS2CD1203D", + "DS-2CD1321G0-I", + "DS-2CD1321G2-IU", + "DS-2CD1321-I", + "DS-2CD1323G0E-I", + "DS-2CD1323G0-IU", + "DS-2CD1323G2-LIU", + "ds-2cd1323g2-LIUF", + "DS-2CD1327G2-L", + "DS-2CD1341-I", + "DS-2CD1343G0-I", + "ds-2cd1343g0-iuf", + "DS-2CD1347G0-L", + "DS-2CD1347G2-LUF", + "DS-2CD1623G0-I", + "DS-2CD1623G0-IZS/UK", + "DS-2CD1643", + "DS-2CD1643G0-IZ", + "DS-2CD1743G2", + "DS-2CD1H43G0-IZ", + "DS-2CD2010F-I", + "DS2CD2012-I", + "DS-2CD201PF-I", + "DS-2CD2020F-I", + "DS-2CD2021G1", + "DS-2CD2021G1-I", + "DS-2CD2021G1-IDW1", + "DS-2CD2022-I", + "DS-2CD2022WD-I", + "DS-2CD2023G0-I", + "DS-2CD2025FWD-I", + "DS-2CD2026", + "ds-2cd2032", + "DS-2CD2032F-I", + "DS-2CD2032F-IW", + "DS-2CD2032-I", + "DS-2CD2032-I (1920X1080)", + "DS-2CD2032-I 3MP IR Waterproof POE IP cctv Camera 6mm", + "DS-2CD2035FWD-I", + "DS-2CD2035-I", + "DS-2CD2041G0-LIU", + "DS-2CD2041G1-IDW1", + "DS-2CD2042D4", + "DS-2CD2042WD-I", + "DS-2CD2043G0-1", + "DS-2CD2043G0-I", + "DS-2CD2043G2-I", + "DS-2CD2043G2-IU", + "DS-2cd2045FWD-I", + "DS-2CD2046G2-IU", + "DS-2CD2047G1-L", + "DS-2CD2047G2H-LI", + "DS-2CD2047G2-LU", + "DS-2CD2051G1-IDW1", + "DS-2CD2052-I", + "ds-2cd2055fwd", + "ds-2cd2055fwd-1", + "DS-2CD2055FWD-I", + "DS-2CD2055-I", + "DS-2CD2063G0-I", + "DS-2CD2065G1-I", + "DS-2CD2065G1-l", + "DS-2CD2083G0-I", + "DS-2CD2083G2-IU", + "DS-2CD2085FWD-I", + "DS-2CD2085G1-I", + "DS-2CD2086G2", + "DS-2CD2086G2-I", + "DS-2CD2086G2-I(U)", + "DS-2CD2086G2-IU", + "DS-2CD2087G2-LIU", + "DS-2CD2087G2-LU", + "DS-2CD2110F-I", + "DS-2CD2112F-1", + "DS-2CD2112F-I", + "DS-2CD2120F-I", + "DS-2CD2121G0-I", + "DS-2CD2122FWD", + "DS-2CD2122FWD-I", + "DS-2CD2122FWD-IS (T)", + "DS-2CD2122FWD-IW", + "DS-2CD2123G0", + "DS-2CD2123G0-IS", + "DS-2CD2123G0-IU", + "DS-2CD2123G2-I", + "DS-2CD2123G2-IS", + "DS-2CD2125FWD-I", + "DS-2CD2126G2-I", + "DS-2CD2132F", + "DS-2CD2132-I", + "DS-2CD2135F-I", + "DS-2CD2135F-IS", + "DS-2CD2141G1-IDW1", + "DS-2CD2142FWD", + "DS-2CD2142FWD-I", + "DS-2CD2142FWD-IS", + "DS-2CD2142FWD-IWS", + "DS-2CD2143G0-I", + "DS-2CD2143G0-I - 4MP", + "DS-2CD2143G0-I2", + "DS-2CD2143G0-ISCKV", + "DS-2CD2145", + "DS-2CD2145F-IS", + "DS-2CD2145FWD-I", + "ds-2cd2145fwd-is", + "DS-2CD2146G2-I", + "DS-2CD2146G2-ISU", + "DS-2CD2152F-I", + "DS-2CD2155FWD", + "DS-2CD2155FWD-1", + "DS-2CD2155FWD-I", + "DS-2CD2155FWD-I 5MP", + "DS-2CD2155FWD-IS", + "DS-2CD2163G0-I", + "DS-2CD2165G0-I", + "DS-2CD2183G0-IS", + "DS-2CD2183G2-IU", + "ds-2cd2185fwd", + "DS-2CD2185FWD-I", + "DS-2CD2185FWD-IS", + "DS-2CD2212-15", + "DS-2CD22385FWD-I", + "DS-2CD2312-I", + "DS-2CD2325FWD-I", + "DS-2CD2332-I", + "DS-2CD2342WD-I", + "DS-2CD2343G0-I", + "DS-2CD2343G2-IU", + "DS-2CD2345FWD-I", + "DS-2CD2346G1-I", + "DS-2CD2346G2-I", + "DS-2CD2346WD-I", + "DS-2CD2347G1", + "DS-2CD2347G1-L", + "DS-2CD2347G1-LU", + "DS-2CD2347G2-L", + "DS-2CD2347G2-LU", + "DS-2CD234WD-I", + "DS-2CD2355FWd", + "DS-2CD2355FWD-I", + "DS-2CD2355-I", + "DS-2CD2363G0-I", + "DS-2CD2365G1", + "DS-2CD2365G1-I", + "DS-2CD2366G2-I", + "DS-2CD2367G2P-LSU", + "DS-2CD2367G2P-LSU/SL", + "DS-2CD2383G0-I", + "DS-2CD2383G0-IU", + "DS-2CD2385FWD-I", + "DS-2CD2385G1-I", + "DS-2CD2385G1-L", + "DS-2CD2386G2-ISU/SL", + "DS-2CD2386G2-IU", + "DS-2CD2387G2", + "DS-2CD2387G2-LSU/SL", + "DS-2CD2387G2-LU", + "DS-2CD2410FD-IW", + "DS-2CD2410F-I(W)", + "ds2cd2412f-1", + "ds2cd2412f-i", + "DS-2CD2412F-I", + "DS-2CD2412F-IW", + "DS-2CD2420F-I", + "DS-2CD2420F-IW", + "DS-2CD2421G0-I", + "DS-2CD2422FWD-IW", + "DS-2CD2423G0-IW", + "DS-2CD2426G2-I", + "DS-2CD2432F-I", + "DS-2CD2432F-I(W)", + "DS-2CD2432F-IW", + "DS-2CD2442FWD", + "DS-2CD2442FWD-IW", + "DS-2CD2443G0-I", + "DS-2CD2443G0-IW", + "DS-2CD2452F-IW", + "DS-2CD2463G2-I", + "DS-2CD2483G0-IW", + "DS-2CD2512F-IS", + "DS-2CD2520F", + "ds-2cd2522", + "DS-2CD2523G0-IS", + "ds-2cd2525fwd-is", + "DS-2CD2532F", + "DS-2CD2532F-I", + "DS-2CD2532F-IS", + "DS-2CD2542FWD-IS", + "DS-2CD2543G0", + "ds-2cd2543g0-is", + "DS-2CD2543G2-IS", + "DS-2CD2543G2-ISB-2.8MM", + "DS-2CD2543GO-IWs", + "DS-2CD2546G2-IS", + "DS-2CD255FWD", + "ds-2cd255fwd-1", + "DS-2CD2563G0-IS", + "DS-2CD2620F-I", + "DS-2CD2620F-IS", + "DS-2CD2622FWD-I", + "DS-2CD2625FHWD-IZS", + "DS-2CD2625FWD-ISZ", + "ds-2CD2626", + "DS-2CD2632F-I", + "DS-2CD2632F-IS", + "DS-2CD2642FWD-I", + "DS-2CD2643G0-IZS", + "ds-2cd2643g1-izs", + "DS-2CD2643G2-IZS", + "DS-2CD2646G2-IZS", + "DS-2CD2655FWD-IZS", + "DS-2CD2663G0-IZS", + "DS-2CD2666G2T-IZS", + "DS-2CD2683G0-IZS", + "DS-2CD2685FWD-IZS", + "DS-2CD2686G2-IZS", + "DS-2CD2720F-I", + "DS-2CD2722FWD-IS", + "DS-2CD2722FWD-IZS", + "DS-2CD2723G1-IZ", + "DS-2CD2726G2-IZS", + "DS-2CD2732F-I", + "DS-2CD2732F-IS", + "DS-2CD2742FWD-IS", + "DS-2CD2743G1-IZS", + "DS-2CD2745FWD-IZS", + "DS-2CD2766G2T-IZS", + "DS-2cd2783G2-IZS", + "DS-2CD2785FWD-IZS", + "DS-2CD2786G2-IZS", + "DS-2CD2787G2HT-LIZS", + "DS-2CD2942F-IWS", + "DS-2CD2D45G1/M-D/NF", + "DS-2CD2E20F", + "DS-2CD2F22FWD", + "DS-2CD2F22FWD-I", + "DS-2CD2F22FWD-IS", + "DS-2CD2F52F-IS", + "DS-2CD2H55FWD-IZS", + "DS-2cd2H85G1-IZS", + "DS-2CD2T21G0-I", + "DS-2CD2T21G1-I", + "DS-2CD2T22WD", + "DS-2CD2T22WD-I3", + "DS-2CD2T22WD-I5", + "DS-2CD2T25FWD-I5", + "DS-2CD2T25FWD-I8", + "DS-2CD2T26G2", + "DS-2CD2T42WD-I3", + "DS-2CD2T42WD-I5", + "DS-2CD2T43G0-I5", + "DS-2CD2T45FWD-I8", + "DS-2CD2T45G0P-I", + "DS-2CD2T46G-2I", + "DS-2CD2T47G2", + "DS-2CD2T47G2-L", + "ds-2cd2t47g2p-lsu", + "DS-2CD2T63G0-I8", + "ds-2cd2t63g2-2i", + "DS-2CD2T65G1-I8", + "DS-2CD2T83G0 8MP", + "DS-2CD2T85FWD-I5", + "DS-2CD2T85FWD-I8", + "DS-2CD2T86G2", + "DS-2CD2T87G2P-LSU/SL", + "DS-2CD3021G0-I", + "DS-2CD3047G0E-LUF", + "DS-2CD3047G2-LS", + "DS-2CD3056G2-IS", + "DS-2CD3121G0-IUHK", + "DS-2CD3132", + "DS-2CD3132F-IW", + "DS-2CD3135F-I", + "DS-2CD3145F", + "DS-2CD3145FD-IWS", + "DS-2CD3145F-I", + "DS-2CD3310-I", + "DS-2CD3320D-I", + "DS-2CD3335D-I", + "DS-2CD3335-I", + "DS-2CD3336WD-I", + "DS-2CD3345F-I", + "DS-2cd3345-I", + "DS-2CD3345-I", + "DS-2CD3386", + "DS-2CD3410FD-IW", + "DS-2CD3686G2-IZS", + "DS-2CD3935FWD-IWS", + "DS-2CD3B26G2T-IZHSY", + "DS-2CD3B46G2T-IZHS", + "DS-2CD3T27EWD3-L", + "DS-2CD3T36WD-I3", + "DS-2CD3T46DWD-I5", + "DS-2CD3T46WDV3-I3", + "DS-2CD3T47EWD-L", + "DS-2CD3T56WD-13", + "DS-2CD3T86FWDA4-LS", + "DS-2CD4026FWD", + "Ds-2cd4a25fwd-iz", + "DS-2CD4A25FWD-IZ", + "DS-2CD4A25FWD-OZ", + "DS-2CD4A26FWD-IZ", + "DS-2CD4A26FWD-IZS/P", + "DS-2CD4B26FWD-IZ", + "DS-2CD5546G0-IZHS", + "DS-2CD6332FWD-IV", + "DS-2CD6362F-I", + "DS-2CD6362F-IV", + "DS-2CD6362F-IVS", + "DS-2CD6365G0E-S/RC", + "DS-2CD6365G0-IS", + "DS-2CD63C2F-IS", + "DS-2CD6412FWD-C2", + "DS-2cd654G1-IZS", + "DS-2CD6986F", + "DS-2CD6D54FWD-IZHS", + "DS-2CD6D82g0-IHS", + "DS-2CD7133-E", + "DS-2CD7A26G0/P-IZHS", + "DS-2CD853F", + "DS2CD862MF", + "DS-2CDA26G0-IZHSY", + "ds-2cgd", + "DS-2CV1021G0-IDW1", + "DS-2CV2041G2-IDW", + "ds-2cv2046g0-idw", + "DS-2CV2141G2-IDW", + "DS-2CV2Q01FD-IW", + "DS-2CV2Q21FD-IW", + "DS-2DC1001-I", + "DS-2DC2532F", + "DS-2DE1A200IW-DE3", + "DS-2DE2202I-DE3/W", + "DS-2DE2A404IW", + "DS-2DE2A404IW-DE3", + "DS-2DE2A404IW-DE3(S6)", + "DS-2DE2A404IW-DE3/W", + "DS-2DE2A404IW-DE320200822CCWRE72456274W", + "DS-2DE2C400MW-DE", + "DS-2DE3304DW-DE", + "DS-2DE3304W-DE", + "DS-2DE3304W-DE20210701CCWRG29013843W", + "DS-2DE3A400BW", + "DS-2DE3A4041W-DE/W", + "DS-2DE3A404IW-DE", + "DS-2DE3A404IW-DE/W", + "DS-2DE4215W-DE3", + "DS-2DE4220-AE", + "DS-2DE4220W-AE", + "DS-2DE4225IW-DE", + "DS-2DE4225W", + "ds-2DE4425IW-DE", + "DS-2DE4425W-DE", + "DS-2DE4582-AE", + "DS-2DE4A225IW-DE", + "DS-2DE4A425IW-DE", + "DS-2DE4A425IWG-E", + "DS-2DE5120I-AE", + "DS-2DE5174-A", + "DS-2DE5220I-AE", + "DS-2DE5225IW-AE", + "DS-2DE5425IW-AE", + "DS-2DE5432IW-AE", + "DS-2DE7120IW-A", + "DS-2DE7174-A", + "DS-2DE7184-AE", + "DS-2DE7330IW", + "DS-2DE7330IW-AE", + "DS-2DF5225X-AEL", + "DS-2DF8223I-AEL", + "DS-2DF8225IX-AEL", + "DS-2DF8236I - AEL", + "DS-2DY5223IW-DM", + "DS-2SC1Q140IZ-TE", + "DS-2SD7A26G0/P-IZHS", + "DS-2SE3C404MWG-E/14", + "DS-2SE4C425MWG-E", + "DS-2SE7C144IW-AE", + "DS-2SF8C442MXS-DLW(24F0)(P3)", + "DS-2TD1217B-6/PA", + "DS-2TD2617B-6/PA", + "DS-2TD4237-25/V2", + "DS-2XE6222F-IS", + "DS-2XM6122FWD-IM", + "DS-2XS2T41G0-ID/4G/C04S05", + "DS-2XXX", + "DS-6704", + "DS-7108HGHI-F1", + "DS-7116HGHI-K1", + "ds-7204hfhi-st", + "DS-7204HQHI-F1/N", + "DS-7204HQHI-K1", + "DS-7208HFHI-ST", + "DS-7208HGHI-SH", + "DS-7216HQHI-F2/N", + "DS-7216HWI-SH", + "DS-72xx", + "DS-7600 NI-SE P DVR", + "DS-7600 Series", + "DS-7604NI", + "DS-7608NI", + "DS-7616NI-E2/16P", + "DS-7616NI-E2-8P-A", + "DS-7732NI-I4/16P", + "DS-7732NI-I4/16P1620161216CCRR694453862WCVU", + "DS-9608NI-RT", + "DS-9632NI", + "DS-9806NI-RT", + "DSC-2CD2035", + "DS-CD1027G0-L", + "DS-CD1383G0-I", + "ds-cd4a25fwd-iz", + "DS-HD1", + "DS-I101", + "DS-I102", + "DS-I110", + "DS-i200", + "DS-I200(c)", + "DS-I200(D)", + "DS-I205", + "DS-I220", + "DS-I2212", + "DS-I250W(B)", + "DS-I400", + "DS-I453M", + "DS-IPC-B12-I", + "DS-IPC-T12H-IA", + "DS-IPC-T12HV3-IA", + "DS-IPC-T12-I", + "DS-K1T671MF", + "ds-kb6003-wip", + "DS-KB6403", + "DS-KB8102", + "DS-KB8112", + "DS-KB8112-IM", + "DS-KD8003-IME1", + "DS-KV6113-WPE1", + "DS-KV6113-WPE1(B)", + "DS-KV8113", + "DS-KV8202", + "DS-l102", + "DS-N201", + "DS-N241W", + "DT143-I20181019", + "DT2A404", + "DT385-I", + "dvr4", + "ECI-D12F2", + "ECI-T24F2", + "ECI-T44F2", + "EV1008HDX", + "Exir", + "G2 8MP", + "Gate", + "H.265", + "H.265+", + "HDTVI-8K-12FPS", + "HES328-VBZ", + "Hik", + "HIK", + "HIK-2CD1041L", + "HIKVISION DS-2CD1148-I/B", + "hikvision ds-2cd1623", + "HIKVISION DS-2CD201PF-I", + "Hikvision DS-2CD2432F-I", + "HIKVISION DS-2CD2522FWD-IS", + "HikVision DS-2CD2745FWD-IZS", + "HIKVISION DS-2CD2F22FWD-I", + "HIKVISION DS-7208HUHI-K1", + "HIKVISION DS7608", + "Hikvision HW140", + "Hikvision IP Camera", + "hilook", + "HK-2CD1041L", + "HK3335", + "HNC328-TD", + "Hnp122-IR/26X", + "hw221", + "HWC P120 D/W", + "HWI-B140H", + "HWI-B640H-V", + "HWI-D129H", + "HWI-D140h", + "HWI-D620H-Z", + "HWI-T020H", + "HWI-T220H", + "HWI-T221H", + "IF52N53-IR", + "IPAL", + "ipc d120", + "IPC3740-FM", + "IPC-8220", + "IPC-92", + "IPcam t4-p", + "IP-CAMERA", + "IPC-B121H", + "IPC-B220", + "IPC-D120", + "IPC-D121H", + "IPC-D140", + "IPC-D150H-M", + "IPC-T056-A3", + "IPC-T056c-A3", + "IPC-T221H", + "ipc-t229h", + "ipc-t240h", + "IPC-T250H", + "IR MINI BULLET", + "jarrod", + "K1T501SF", + "Leffes", + "LPR", + "mini ptz camera", + "mistnost", + "muz", + "MUZ1", + "MUZ2", + "NC304-XD", + "nc324", + "nevahgno", + "NVR", + "NVR-4CH", + "OFC", + "Other", + "PCI-T15F2SL", + "Puha", + "SH-IVB01UFE-IW", + "SkyCam", + "TF44", + "TV-IP310PI", + "VCU", + "waihi" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/101" + }, + { + "models": [ + "1080P", + "2032", + "215", + "218", + "219", + "222", + "223", + "2385", + "2CD1323G0E-I", + "2cd2110f", + "2CD3340-FI", + "3335", + "3335-I", + "CD2020", + "cd2123", + "CHINA", + "CMIP1024", + "DC-2CD2042WD-I", + "ds kb8113", + "DS-2CD", + "DS-2CD1021-I", + "ds-2cd1023g0e-1", + "DS-2CD1023G0-IUF", + "DS-2CD1023G0-IUM", + "DS-2CD1027G0-L", + "DS-2CD1101-I", + "DS-2CD1131-I", + "DS-2CD1341-I", + "DS-2CD1343G0-I", + "ds-2cd2010f-i", + "DS-2CD2012-I", + "DS-2CD2020F-I", + "DS-2CD2021G1-I", + "DS-2CD2022WD-I", + "DS-2CD2032-I", + "DS-2CD2035FWD-I", + "DS-2CD2042WD-I", + "DS-2CD2085G1-L", + "DS-2CD2086G2-IU", + "DS-2CD2112-I", + "DS-2CD2120F-I", + "DS-2CD2132-I", + "DS-2CD2142FWD-I", + "DS-2CD2143G0-I", + "DS-2CD2145F-IS", + "DS-2CD2146-G2", + "DS-2CD2183G0-IS", + "DS-2CD2343G0-I", + "DS-2CD2343G2-IU", + "DS-2CD2347G2-LU", + "DS-2CD2355FWD-I", + "DS-2CD2355-I", + "DS-2CD2385FWD-I", + "DS-2CD2386G2-ISU/SL", + "DS-2CD2387G2-LSU/SL", + "DS-2CD2420F-IW", + "DS-2CD2421G0-IW", + "DS-2CD2432F-I", + "DS-2CD2532F-IS", + "DS-2CD2622FWD-I", + "DS-2CD2642FWD-I", + "DS-2CD2642FWD-IS", + "DS-2CD2645FWD-IZS", + "DS-2CD2646G2-IZS", + "DS-2CD2666G2T-IZS", + "DS-2CD2712F-I", + "DS-2CD2742FWD-IS", + "DS-2CD2766G2T-IZS", + "DS-2CD3T45D-I5", + "DS-2CD3T45-I5", + "DS-2CD6332FWD-IS", + "DS-2CD6412FWD-C2", + "DS-2CD7A26G0/P-IZHS", + "DS-2D", + "DS-2D54E5432IW-AE", + "DS-2DC1001-I", + "DS-2DE2202-DE3/W", + "DS-2DE2A404IW-DE3", + "DS-2DE3304W", + "DS-2DE4225IW-DE", + "DS-2DE5432IW-AE", + "DS-2DE7432IW-AE", + "DS-2TD1217-3/V1", + "DS-2TD2617B-6/PA", + "DS-7", + "DS-7216HI-SL", + "DS-7216HWI-SH", + "DS-7332HGHI-SH", + "DS-7604NI", + "DS-7608NI", + "DS-7608NI-E2", + "DS-7616", + "DS-7732NI-I4/16P", + "DS-9608NI-RT", + "DS-CD", + "DS-i200", + "DS-KD8003", + "DS-KV6113-WPE1", + "DS-KV6113-WPE1(B)", + "EV1008HDX", + "FFMPEG substream", + "GVIP2620V", + "Hik", + "HIK", + "HIKVISION DS-2CD2432F-IW", + "HIKVISION DS-7208HUHI-K1", + "HIKVISION DS7216", + "HIKVISION DS7608", + "hrome", + "IPC-B220", + "jarrod", + "NVR", + "Other", + "prohodnaya" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "1080P", + "2DE7225", + "Bullet-4K", + "DC-2CD2010-I", + "DS.-2CD1410F.1W", + "DS-1676NI-E2/16P", + "ds2cd1043g2liu", + "DS2-CD2032-I", + "DS-2CD2122FWD-IS (T)", + "DS-2CD2123G2-I", + "DS-2CD2332", + "DS-2CD2342WD-I", + "DS-2CD6332FWD-IS", + "DS-2CD6365G0-IS", + "DS-2CD6412FWD-C2", + "DS-2TD2637-10/PY", + "DS-7104HWI-SH", + "DS-7108HQHI-K1", + "DS-7204HQHI", + "DS-7204HQHI-HK", + "DS-7204HQHI-K1", + "DS-7208HGHI-SH", + "DS-7208HVI-SV", + "DS-7216HGHI-E2", + "DS-7216HWI", + "DS-7232HQHI-K2", + "DS-72XX", + "DS-7608NI", + "DS-7608NI-E2", + "DS-7732NI-I4/16P", + "NVR", + "NVR-CH4", + "Other", + "TV-IP320PI" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/channels/201" + }, + { + "models": [ + "1080P", + "DS-1676NI-E2/16P", + "DS-2CD6332FWD-IS", + "DS-2CD6812D", + "DS-2DC1001-I", + "DS-2TD2617-3/V1", + "DS-7204HQHI-K1", + "DS-7208HGHI", + "DS-7208HGHI-SH", + "EV3016", + "HIKVISION DS7216", + "UNLISTED" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/501" + }, + { + "models": [ + "1080P", + "228", + "2DS-2CD2142FWD-I", + "DS.-2CD1410F.1W", + "DS-1676NI-E2/16P", + "DS-2CD6332FWD-IV", + "DS-2CD6362F-IV", + "DS-2CD6365G0-IS", + "DS-7108HGHI-F1", + "DS-7204HQHI-HK", + "DS-7204HQHI-K1", + "DS-7208HGHI", + "DS-7208HQHI-F1", + "DS-7216HUHI-K2", + "DS-72XX", + "DS-7332HGHI-SH", + "DS-I220", + "HIKVISION DS-7208HFHI-ST", + "HIKVISION DS-7208HUHI-K1", + "NVR", + "Other" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/301" + }, + { + "models": [ + "1080P", + "2035", + "2CD", + "2CD2032-L", + "2CD2442WD-I", + "Bullet", + "DM-SCB415IP-V10E", + "DS-2CD", + "DS-2CD1021-I", + "ds-2cd1023g0e-1", + "DS-2CD1023G0-IUF", + "DS-2CD1123G0E-I", + "DS-2CD1623G0-IZS/UK", + "ds-2cd2021g1-i", + "DS-2CD2035FWD-1", + "ds2cd2043g2i", + "DS-2CD2085G1-L", + "DS-2CD2110F-I", + "DS-2CD2142FWD-I", + "DS-2CD2146G2-ISU", + "DS-2CD2183G0-I", + "DS-2CD23", + "DS-2CD2332-I", + "DS-2CD2335FWD-I", + "DS-2CD2347G1-L", + "DS-2CD2355FWD-I", + "DS-2CD2385G1-I", + "DS-2CD2387G2-LSU/SL", + "DS-2CD2442FWD-IW", + "DS-2CD2443G0-IW", + "DS-2CD2625FWD-ISZ", + "DS-2CD2643G0-IZS", + "DS-2CD2T47G1-L", + "DS-2CD3025G0-I", + "DS-2CD3145G0-IS", + "DS-2CD3145GO-IS", + "DS-2CD3345-I", + "DS-2CD3786G2T-IZS", + "DS-2CD6365G0-IS", + "DS-2DF5225X-AEL", + "DS-6701HFI", + "DS-6716", + "DS-7108HGHI-E1", + "DS7116", + "DS-7204HQHI-HK", + "DS-7204HTHI-K1", + "DS-7208HGHI-SH", + "DS-7208HVI-SV", + "DS-7216HGHI-E2", + "DS-7216HGHI-SH", + "DS-7216HWI-SH", + "DS-7604NI", + "DS-7608NI-E2", + "DS-7616", + "DS-7716NI-SP/16", + "DS-8108HQHI-SH", + "DS-9664NI-I8", + "DS-Dc1121", + "DS-KB8112", + "DS-KV6113-WPE1(C)", + "DS-KV8113-WME1(C)", + "EV1016HDX", + "GPS-DVR01", + "HES324-MB", + "HIK PTZ", + "HIKISION", + "HIKVISION DS-7208HUHI-K1", + "HIKVISION HD 2.0", + "Other", + "SC-303GY-XD" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/channels/101" + }, + { + "models": [ + "1080P", + "DS-2CD2342WD-I", + "DS-2CD6332FWD-IS", + "DS-2CD6365G0-IS", + "DS-2CD6812D", + "DS-7208HGHI-SH", + "DS-7216HUHI-K2", + "DS-7604NI", + "DS-7A04HQHI-K1", + "HIKVISION DS-7208HUHI-K1", + "NVR", + "Other" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/401" + }, + { + "models": [ + "1080P", + "7608", + "CAMERAA", + "DS-1676NI-E2/16P", + "DS-2CD2347G2-LU", + "DS-2CD2620F-IS", + "DS-2CD2646G2HT-IZS", + "DS-4208HGHI-E1", + "DS-7108HGHI-F1", + "DS-7204HGHI-E1", + "DS-7204HQHI-HK", + "DS-7204HQHI-K1", + "DS-7208HGHI", + "DS-7208HGHI-SH", + "DS-7216HGHI-E2", + "DS-7332HGHI-SH", + "DS-7616", + "ds-7716ni-sp", + "DS-7716NI-SP/16", + "DVR", + "HIKVISION DS-7208HFHI-ST", + "Other" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/channels/401" + }, + { + "models": [ + "130hook", + "2CD-2142", + "DC-2CD2110F-1", + "ds2cd2043g2i", + "DS-2CD2132-I", + "DS2CD2332-I", + "DS-2CD2385G1-I", + "DS-2CD2387G2-LSU/SL", + "DS-2CD2412F-IW", + "DS-2CD2620F-I", + "DS-2CD2625FWD-ISZ", + "DS-2CD2T65FWD-I5", + "DS-2CD63C2F-IVS", + "ds-7104hghi-f1", + "DS-7204HQHI-HK", + "DS-7208HGHI", + "DS-7208HGHI-SH", + "DS-7208HQHI-K1", + "DS-7732NI-I4/16P", + "DVR", + "Other" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/channels/102" + }, + { + "models": [ + "2135", + "DS-2CD", + "DS-2CD2421G0-IW", + "DS-2CD2726G2-IZS" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/103" } ] } \ No newline at end of file diff --git a/data/brands/hiwatch.json b/data/brands/hiwatch.json index a5100b9..daabfde 100644 --- a/data/brands/hiwatch.json +++ b/data/brands/hiwatch.json @@ -5,35 +5,117 @@ "source": "ispyconnect.com", "entries": [ { - "models": ["ALL"], + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], "type": "FFMPEG", "protocol": "rtsp", "port": 554, "url": "/Streaming/Channels/[CHANNEL]01" }, { - "models": ["ALL"], + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], "type": "FFMPEG", "protocol": "rtsp", "port": 554, "url": "/Streaming/Channels/[CHANNEL]02" }, { - "models": ["ALL"], + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], "type": "FFMPEG", "protocol": "rtsp", "port": 554, "url": "/ISAPI/Streaming/Channels/[CHANNEL]01" }, { - "models": ["ALL"], + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], "type": "FFMPEG", "protocol": "rtsp", "port": 554, "url": "/ISAPI/Streaming/Channels/[CHANNEL]02" }, { - "models": ["ALL"], + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/[CHANNEL]02" + }, + { + "models": [ + "ALL" + ], "type": "FFMPEG", "protocol": "rtsp", "port": 554, @@ -82,69 +164,6 @@ "port": 554, "url": "/Streaming/Channels/1" }, - { - "models": [ - "ALL", - "B220", - "C6T", - "D110", - "DS-H216Q", - "DS-I102", - "DS-I113", - "DS-I114", - "DS-I114W", - "DS-i126", - "ds-i200", - "DS-I200(D)", - "ds-i203", - "DS-I213", - "ds-i214", - "DS-I214(B)", - "ds-i214w(b)", - "ds-i223", - "DS-I400(C)", - "ds-l122", - "ds-n241w", - "i100", - "i110", - "I114", - "i114w", - "I120", - "IPC-B120-I", - "IPC-B140", - "IPC-B622-G2/ZS", - "IPC-D082-G2/S", - "IPC-D120", - "IPC-T640-Z", - "l110", - "Other", - "VDP-D2201", - "VDP-D2211W(B)", - "watch" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/101" - }, - { - "models": [ - "ALL", - "DS-I102", - "ds-i200", - "Ds-i203", - "DS-I214(B)", - "DS-I214W(B)", - "DS-I253", - "ds-i458", - "HiWatch DS-N208(C)", - "i450s" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/ISAPI/Streaming/Channels/101" - }, { "models": [ "DC-I200", @@ -256,16 +275,6 @@ "port": 554, "url": "/h264_stream" }, - { - "models": [ - "ds-i200", - "VDP-D2201" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 555, - "url": "/Streaming/Channels/102" - }, { "models": [ "Ds-i203" @@ -275,16 +284,6 @@ "port": 8000, "url": "/" }, - { - "models": [ - "DS-I214(B)", - "DS-I405" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/ISAPI/Streaming/Channels/102" - }, { "models": [ "DS-I220", @@ -345,6 +344,89 @@ "protocol": "rtsp", "port": 554, "url": "/onvif1" + }, + { + "models": [ + "ALL", + "B220", + "C6T", + "D110", + "DS-H216Q", + "DS-I102", + "DS-I113", + "DS-I114", + "DS-I114W", + "DS-i126", + "ds-i200", + "DS-I200(D)", + "ds-i203", + "DS-I213", + "ds-i214", + "DS-I214(B)", + "ds-i214w(b)", + "ds-i223", + "DS-I400(C)", + "ds-l122", + "ds-n241w", + "i100", + "i110", + "I114", + "i114w", + "I120", + "IPC-B120-I", + "IPC-B140", + "IPC-B622-G2/ZS", + "IPC-D082-G2/S", + "IPC-D120", + "IPC-T640-Z", + "l110", + "Other", + "VDP-D2201", + "VDP-D2211W(B)", + "watch" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/101" + }, + { + "models": [ + "ALL", + "DS-I102", + "ds-i200", + "Ds-i203", + "DS-I214(B)", + "DS-I214W(B)", + "DS-I253", + "ds-i458", + "HiWatch DS-N208(C)", + "i450s" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/101" + }, + { + "models": [ + "ds-i200", + "VDP-D2201" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 555, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "DS-I214(B)", + "DS-I405" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/ISAPI/Streaming/Channels/102" } ] } \ No newline at end of file diff --git a/data/brands/levelone.json b/data/brands/levelone.json index a1e368d..2cedc18 100644 --- a/data/brands/levelone.json +++ b/data/brands/levelone.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "0010/0020", @@ -647,15 +665,6 @@ "port": 0, "url": "cam[CHANNEL]/h264" }, - { - "models": [ - "FCS-3084" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/102" - }, { "models": [ "FCS-4051", @@ -770,6 +779,15 @@ "protocol": "http", "port": 80, "url": "/cgi-bin/video.jpg" + }, + { + "models": [ + "FCS-3084" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/102" } ] } \ No newline at end of file diff --git a/data/brands/night-owl.json b/data/brands/night-owl.json index 45f06bf..a3028e3 100644 --- a/data/brands/night-owl.json +++ b/data/brands/night-owl.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, { "models": [ "0v600-365-kd", @@ -153,24 +171,6 @@ "port": 0, "url": "snapshot.jpg?account=[USERNAME]&password=[PASSWORD]" }, - { - "models": [ - "BTD2", - "CAM2", - "DVR-FTD4-8", - "DVR-THD30B", - "FTD4", - "Other", - "WM-CAM-WAWNP2L", - "wmvr-wnip2", - "WNIP2-CM", - "WNIP-2lta-bs" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/channels/301" - }, { "models": [ "CAM-1", @@ -375,6 +375,24 @@ "protocol": "http", "port": 80, "url": "/cgi-bin/snapshot.cgi?chn=0&u=[USERNAME]&p=[PASSWORD]" + }, + { + "models": [ + "BTD2", + "CAM2", + "DVR-FTD4-8", + "DVR-THD30B", + "FTD4", + "Other", + "WM-CAM-WAWNP2L", + "wmvr-wnip2", + "WNIP2-CM", + "WNIP-2lta-bs" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/channels/301" } ] } \ No newline at end of file diff --git a/data/brands/oswoo.json b/data/brands/oswoo.json index b95a349..ef2ec3a 100644 --- a/data/brands/oswoo.json +++ b/data/brands/oswoo.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 10554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, { "models": [ "801", diff --git a/data/brands/swann.json b/data/brands/swann.json index 673f9d7..56376c0 100644 --- a/data/brands/swann.json +++ b/data/brands/swann.json @@ -4,6 +4,42 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL+1]02" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/[CHANNEL]02" + }, { "models": [ "005FTCD", @@ -588,58 +624,6 @@ "port": 554, "url": "/ch05/1" }, - { - "models": [ - "7-12", - "8ch 3MP NVR", - "dv8-3425", - "DVR w/ Web Port", - "DVR W/ WEB PORT", - "DVR4 4350", - "DVR8", - "DVR8-4900", - "DVR8-8050", - "DVR8-8075", - "HDR8050", - "lv-9808", - "NHD-850CAM", - "NHH-880CAM", - "nvr16-7090", - "NVR-7200", - "Other", - "SWIFI-FLOCAM2", - "swifi-spotcam", - "SWIFI-XTRCAM", - "SWWHD-OUTCAM", - "T855" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/101" - }, - { - "models": [ - "880", - "DVR4 4350", - "DVR8-1500", - "DVR8-1525", - "DVR8-4500", - "DVR8-4900", - "HDR8050", - "lv-9808", - "NHD-850CAM", - "nvr16-7090", - "NVR-7200", - "Other", - "SPOTCAM", - "WIFI-PT" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/Channels/102" - }, { "models": [ "887" @@ -874,37 +858,6 @@ "port": 0, "url": "/Streaming/Unicast/channels/401" }, - { - "models": [ - "DVR W/ WEB PORT", - "DVR4 4350", - "DVR8-8075", - "lv-9808", - "Other" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 0, - "url": "/Streaming/channels/101" - }, - { - "models": [ - "DVR-1500" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/701" - }, - { - "models": [ - "DVR-1500" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/601" - }, { "models": [ "DVR4", @@ -942,15 +895,6 @@ "port": 80, "url": "/?action=stream" }, - { - "models": [ - "DVR8-4500" - ], - "type": "FFMPEG", - "protocol": "rtsp", - "port": 554, - "url": "/Streaming/Channels/301" - }, { "models": [ "DVR8-4500", @@ -1314,6 +1258,98 @@ "protocol": "rtsp", "port": 0, "url": "/Streaming/Channels/2" + }, + { + "models": [ + "7-12", + "8ch 3MP NVR", + "dv8-3425", + "DVR w/ Web Port", + "DVR W/ WEB PORT", + "DVR4 4350", + "DVR8", + "DVR8-4900", + "DVR8-8050", + "DVR8-8075", + "HDR8050", + "lv-9808", + "NHD-850CAM", + "NHH-880CAM", + "nvr16-7090", + "NVR-7200", + "Other", + "SWIFI-FLOCAM2", + "swifi-spotcam", + "SWIFI-XTRCAM", + "SWWHD-OUTCAM", + "T855" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/101" + }, + { + "models": [ + "880", + "DVR4 4350", + "DVR8-1500", + "DVR8-1525", + "DVR8-4500", + "DVR8-4900", + "HDR8050", + "lv-9808", + "NHD-850CAM", + "nvr16-7090", + "NVR-7200", + "Other", + "SPOTCAM", + "WIFI-PT" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/Channels/102" + }, + { + "models": [ + "DVR W/ WEB PORT", + "DVR4 4350", + "DVR8-8075", + "lv-9808", + "Other" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 0, + "url": "/Streaming/channels/101" + }, + { + "models": [ + "DVR-1500" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/701" + }, + { + "models": [ + "DVR-1500" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/601" + }, + { + "models": [ + "DVR8-4500" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/301" } ] } \ No newline at end of file diff --git a/data/brands/tbkvision.json b/data/brands/tbkvision.json index 3f047ae..f4b865b 100644 --- a/data/brands/tbkvision.json +++ b/data/brands/tbkvision.json @@ -4,6 +4,24 @@ "last_updated": "2025-10-17", "source": "ispyconnect.com", "entries": [ + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL+1]01" + }, + { + "models": [ + "ALL" + ], + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "url": "/Streaming/Channels/[CHANNEL]01" + }, { "models": [ "TBK-BUL8841Z" diff --git a/data/popular_stream_patterns.json b/data/popular_stream_patterns.json index 5af16e7..4557090 100644 --- a/data/popular_stream_patterns.json +++ b/data/popular_stream_patterns.json @@ -31,6 +31,54 @@ "notes": "Common RTSP sub stream for ONVIF cameras", "model_count": 9998 }, + { + "url": "/Streaming/Channels/[CHANNEL+1]01", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision main stream - 0-based channel input (channel 0 -> 101, 1 -> 201)", + "model_count": 9500 + }, + { + "url": "/Streaming/Channels/[CHANNEL]01", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision main stream - 1-based channel input (channel 1 -> 101, 2 -> 201)", + "model_count": 9490 + }, + { + "url": "/Streaming/Channels/[CHANNEL+1]02", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision sub stream - 0-based channel input (channel 0 -> 102, 1 -> 202)", + "model_count": 9480 + }, + { + "url": "/Streaming/Channels/[CHANNEL]02", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision sub stream - 1-based channel input (channel 1 -> 102, 2 -> 202)", + "model_count": 9470 + }, + { + "url": "/Streaming/Channels/[CHANNEL+1]03", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision third stream - 0-based channel input (channel 0 -> 103, 1 -> 203)", + "model_count": 9460 + }, + { + "url": "/Streaming/Channels/[CHANNEL]03", + "type": "FFMPEG", + "protocol": "rtsp", + "port": 554, + "notes": "Hikvision third stream - 1-based channel input (channel 1 -> 103, 2 -> 203)", + "model_count": 9450 + }, { "url": "/ch2", "type": "FFMPEG", diff --git a/internal/camera/discovery/scanner.go b/internal/camera/discovery/scanner.go index e8ff25d..df2fff9 100644 --- a/internal/camera/discovery/scanner.go +++ b/internal/camera/discovery/scanner.go @@ -302,11 +302,13 @@ func (s *Scanner) collectStreams(ctx context.Context, req models.StreamDiscovery "model", req.Model, "limit", req.ModelLimit) - // Search for similar models - cameras, err := s.searchEngine.SearchByModel(req.Model, 0.8, req.ModelLimit) + // Search for cameras using intelligent brand+model search + searchResp, err := s.searchEngine.Search(req.Model, req.ModelLimit) if err != nil { s.logger.Error("model search failed", err) } else { + cameras := searchResp.Cameras + // Collect entries from all matching cameras var entries []models.CameraEntry for _, camera := range cameras { diff --git a/internal/camera/stream/builder.go b/internal/camera/stream/builder.go index c928f76..9307c14 100644 --- a/internal/camera/stream/builder.go +++ b/internal/camera/stream/builder.go @@ -174,34 +174,38 @@ func (b *Builder) replacePlaceholders(urlPath string, ctx BuildContext) string { // Common placeholders replacements := map[string]string{ - "[CHANNEL]": strconv.Itoa(ctx.Channel), - "[channel]": strconv.Itoa(ctx.Channel), - "{channel}": strconv.Itoa(ctx.Channel), // BUBBLE protocol uses {channel} - "{CHANNEL}": strconv.Itoa(ctx.Channel), - "[WIDTH]": strconv.Itoa(ctx.Width), - "[width]": strconv.Itoa(ctx.Width), - "[HEIGHT]": strconv.Itoa(ctx.Height), - "[height]": strconv.Itoa(ctx.Height), - "[USERNAME]": ctx.Username, - "[username]": ctx.Username, - "[PASSWORD]": ctx.Password, - "[password]": ctx.Password, - "[PASWORD]": ctx.Password, // Handle typo in database - "[pasword]": ctx.Password, - "[USER]": ctx.Username, - "[user]": ctx.Username, - "[PASS]": ctx.Password, - "[pass]": ctx.Password, - "[PWD]": ctx.Password, - "[pwd]": ctx.Password, - "[IP]": ctx.IP, - "[ip]": ctx.IP, - "[PORT]": strconv.Itoa(ctx.Port), - "[port]": strconv.Itoa(ctx.Port), - "[AUTH]": auth, // base64(username:password) for basic auth - "[auth]": auth, - "[TOKEN]": "", // Empty for now - "[token]": "", + "[CHANNEL]": strconv.Itoa(ctx.Channel), + "[channel]": strconv.Itoa(ctx.Channel), + "[CHANNEL+1]": strconv.Itoa(ctx.Channel + 1), // For Hikvision-style channels (101, 201, 301...) + "[channel+1]": strconv.Itoa(ctx.Channel + 1), + "{CHANNEL}": strconv.Itoa(ctx.Channel), // BUBBLE protocol uses {channel} + "{channel}": strconv.Itoa(ctx.Channel), + "{CHANNEL+1}": strconv.Itoa(ctx.Channel + 1), + "{channel+1}": strconv.Itoa(ctx.Channel + 1), + "[WIDTH]": strconv.Itoa(ctx.Width), + "[width]": strconv.Itoa(ctx.Width), + "[HEIGHT]": strconv.Itoa(ctx.Height), + "[height]": strconv.Itoa(ctx.Height), + "[USERNAME]": ctx.Username, + "[username]": ctx.Username, + "[PASSWORD]": ctx.Password, + "[password]": ctx.Password, + "[PASWORD]": ctx.Password, // Handle typo in database + "[pasword]": ctx.Password, + "[USER]": ctx.Username, + "[user]": ctx.Username, + "[PASS]": ctx.Password, + "[pass]": ctx.Password, + "[PWD]": ctx.Password, + "[pwd]": ctx.Password, + "[IP]": ctx.IP, + "[ip]": ctx.IP, + "[PORT]": strconv.Itoa(ctx.Port), + "[port]": strconv.Itoa(ctx.Port), + "[AUTH]": auth, // base64(username:password) for basic auth + "[auth]": auth, + "[TOKEN]": "", // Empty for now + "[token]": "", } // Replace all placeholders