Channels were keyed solely on the metadata `Name` field. Multi-sensor
cameras (e.g. Avigilon 32C-H5A) export one file per sensor that share an
identical `Name` and `Serial`, so their sensors merged into a single tile
and one sensor's clips were lost to start-time dedup — surfacing as
"only 3 of 4 cameras loaded".
Add cameraIdFromFile(), which derives a per-sensor id from the export
filename prefix (stripping the Alta timestamp, e.g. "Backyard_4-...Z.mp4"
-> "Backyard 4"), and key channels by it, falling back to the metadata
Name for non-Alta filenames. Verified: all 4 sensors now load as
distinct tiles (4 cameras | 13 clips).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Web-based surveillance video player for Alta/Ava Security camera exports
with multi-camera sync, timeline, digital zoom, motion analytics, and
cryptographic integrity verification.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>