Skip to content

data: backfill video.streams[] — Dahua (168 cameras, 9 batches) (#177) - #183

Open
ch-bas wants to merge 9 commits into
mainfrom
data/streams-dahua-177
Open

data: backfill video.streams[] — Dahua (168 cameras, 9 batches) (#177)#183
ch-bas wants to merge 9 commits into
mainfrom
data/streams-dahua-177

Conversation

@ch-bas

@ch-bas ch-bas commented Jul 28, 2026

Copy link
Copy Markdown
Owner

Backfills video.streams[] (per-stream name/resolution/fps/codec) for 168 Dahua cameras across 9 batches, all extracted from official Dahua Stream Capability tables (product pages + datasheet PDFs on materialfile.dahuasecurity.com). Part of the #177 lane.

Coverage: Dahua 1 → 168 (of 335); dataset-wide streams 573 → 740

Batch Series Cameras
1 WizSense-2 HDBW domes + WizSense-3 18
2 WizSense-2 HDW turrets 21
3 WizSense-2 HFW bullets + WizSense-3 21
4 HFW fixed-lens bullets (5/6/8 MP) 19
5 SD4/SD5 PTZ speed domes 21
6 SD6 WizMind PTZ 12
7 SD7/SD8 WizMind PTZ (4G/5G/X) 21
8 PTZ positioning systems + 1 bullet 14
9 A180 panoramic + X-Spans/SDT thermal 20

Conventions (uniform across batches)

  • main = the stream's actual output resolution at its full-res frame rate. This is the payoff of per-stream data vs the headline max_fps: fixed 5/6/8 MP cameras cap at 20 fps at full res, while PTZ speed domes run 30/60 fps — captured per datasheet, never assumed.
  • sub / sub2 = D1 (704×576) + 1080p/720p for standard cams; wide panoramic sub-streams for A180 models.
  • codec = H.265 on every stream (MJPEG/H.264 are selectable options, not the primary; canonical form matches the codec enum in CI: canonical codec enum + normalization + placeholder-sentinel lint (#180) #182).
  • main resolution sourced from each file's resolution.max_* for internal consistency; every apply asserted main == stored max.

Notable per-model accuracy

  • Stream-vs-sensor: SD4F420DA / SD6C3432GB main streams top out below the sensor's max resolution — recorded the stream value, not the spec-sheet sensor row.
  • Thermal (X-Spans/SDT): recorded the visible/optical channel only; the radiometric thermal channel is intentionally omitted. Dual-visible "4z4"/"8p" combos use the detail/highest-res visible stream.
  • Panoramic (A180): stitched-panorama main stream (up to 8192×3840) + wide sub streams, PDF-verified.
  • Dropped uncertain 1-fps "third" slots rather than record a doubtful value.

Remaining

13 Dahua cameras with a codecs list but no streams[] were intentionally excluded — they overlap the codec-normalization set in #182, so they were held back to keep these two PRs conflict-free. They can be a trivial follow-up once #182 merges. The other ~154 lack a video block entirely (no codecs), which is out of scope for a streams-only backfill.

Builds clean (2,618 cameras).

ch-bas added 4 commits July 28, 2026 19:42
First batch of the video.streams[] backfill lane. Per-stream main/sub(/sub2)
breakdown extracted from official Dahua datasheet Stream Capability tables:

- main = full sensor resolution at its actual full-res frame rate
  (2/4MP @30; 5MP & 8MP 2-series @20; WizSense-3 @30)
- sub = D1 704x576 @30 (2-series) / 1080p @30 (WizSense-3, incl. sub2)
- codec H.265 on every stream (MJPEG/H.264 are selectable per-stream options,
  not the primary; canonical form matches the codec enum from #180)

Dropped uncertain "third" 352x288@1fps slots (agents read the low end of a
1-30 range) rather than record a doubtful value. Dahua streams coverage 1 -> 19.
Batch 2 — the HDW2 turret siblings of batch 1's HDBW2 domes. Same method
(official Dahua Stream Capability tables) and conventions:
- main = full sensor resolution at its full-res frame rate (2/4MP @30,
  4MP-2688 & 5/6/8MP @20; 2449th-s-prox native 2560x1440 @30)
- sub = D1 704x576 @25 (704x480@30 is a lower-res slot)
- codec H.265 on every stream
- main resolution sourced from each file's resolution.max_* for consistency

Dahua streams coverage 19 -> 40.
…#177)

Batch 3 — WizSense-2 HFW bullets (2/4/12 MP) and four WizSense-3 Pro turrets.
Same method (official Dahua Stream Capability tables) and conventions as
batches 1-2. Per-model variation captured from datasheets:
- 12 MP HFW21249: main 4480x2512 @15
- 4G HFW2449DG: single main stream 2560x1440 @30 (no sub row on the 4G datasheet)
- WizSense-3 Pro (HDW3xxx): main @30 + two 1080p@30 sub streams
- codec H.265 on every stream; main resolution sourced from resolution.max_*

Dahua streams coverage 40 -> 61.
)

Batch 4 — the remaining fixed-lens HFW2/HFW3 bullets (5/6/8 MP + two
discontinued HFW3 and two WizSense-3). Same method/conventions as batches 1-3:
- 5/6/8 MP full-res @20; native-16:9 4 MP (2560x1440) & WizSense-3 @30
- sub 704x576 @25 (HFW2649S-S-IL sub @20 per its datasheet); WizSense-3 sub 1080p@30
- codec H.265; main resolution sourced from each file's resolution.max_*

Dahua streams coverage 61 -> 80. Fixed-lens WizSense series now essentially
complete; remaining Dahua are SD/PTZ/PFW/thermal (per-model stream tables).
@ch-bas ch-bas added documentation Improvements or additions to documentation enhancement New feature or request labels Jul 28, 2026
ch-bas added 5 commits July 28, 2026 21:53
Batch 5 — WizSense/WizMind SD4 and SD5 PTZ speed domes. First PTZ batch, so
conventions differ from fixed cameras:
- main runs full frame rate at max res (2 MP @30 or @60, 4 MP @30, 8 MP @30) —
  no 20 fps cap; recorded the datasheet's paired value per stream
- main + sub (704x576) + sub2 (1080p/720p), three concurrent streams typical
- SD4F420DA: main stream tops at 2560x1440@25 (PAL) though the sensor max is
  2688x1520 — recorded the actual stream output, not the sensor spec
- codec H.265 on every stream

Dahua streams coverage 80 -> 101.
Batch 6 — WizMind SD6 PTZ speed domes (2/4/8 MP). Same PTZ conventions as
batch 5: main at full frame rate (2 MP @60, 4 MP @30, 8 MP @30) + sub 704x576
+ sub2 1080p/720p, all H.265. SD6C3432GB-HNR-A-PV1 main stream tops at
2560x1440 though its sensor max is 2688x1520 (recorded the stream output).

Dahua streams coverage 101 -> 113.
Batch 7 — high-end WizMind SD7/SD8 PTZ (incl. 4G/5G and X-series). SD7 models
run full frame rate at max res (4 MP 2688x1520 @60, 8 MP 4K @60); SD8 mostly
@30; SD8A440PA-5G triple-stream all @60. main + sub(704x576) + sub2(1080p),
codec H.265. (SD7 100/120 fps applies only to reduced-res monitoring modes,
not the max-res main stream — not recorded.)

Dahua streams coverage 113 -> 134.
)

Batch 8 — PTZ special-series positioning systems (PTZ1/3/4/8, MPTZ, SDZ, PTS)
plus one WizMind full-color bullet. Standard single-sensor stream tables:
main + sub(704x576) + sub2(1080p or 720p), codec H.265. Full-res fps per
datasheet (2 MP @30 or @60; 4 MP @30 or @60; 8 MP @30). PTS2249B has only
main + sub. IPC-HFW5849T1-ASE-LED verified against the official Dahua page
(the file's only stored source was a reseller).

Dahua streams coverage 134 -> 148.
Final Dahua batch — the multi-sensor tail:
- 7 A180 panoramic (PDW/PFW): stitched-panorama main stream (up to 8192x3840)
  + wide sub streams, all PDF-verified
- 13 X-Spans/SDT: recorded the VISIBLE (optical) channel only; the radiometric
  thermal channel is intentionally omitted (separate low-res sensor). For the
  dual-visible "4z4"/"8p" combos, recorded the detail/PTZ or highest-res
  visible stream matching the stored resolution
- SDT8C842: recorded its panorama (5376x1520) to stay consistent with the
  file's resolution field
- codec H.265 on every stream

Dahua streams coverage 148 -> 168. Closes the standard + multi-sensor Dahua
series for the streams lane.
@ch-bas ch-bas changed the title data: backfill video.streams[] — Dahua WizSense batch 1 (18 cameras) (#177) data: backfill video.streams[] — Dahua (168 cameras, 9 batches) (#177) Jul 28, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant