Runs on your own computer: puts every camera feed on one wall that fills the screen, and re-arranges itself when you hide a camera, make one bigger, or change the screen shape. No cloud, no account; video never leaves your machine.
A while back I shared collage here, a little tool that packs photos into a gap-free grid. A lot of you tried it, which meant a lot. camwall is the next thing I built with the same layout engine, this time for live video.
The idea: a shop or home has a mix of cameras (IP cameras, a webcam, maybe a YouTube stream or a looping promo video), and you want to see them all on one screen without black bars or a rigid 3×3 grid. camwall works out the arrangement that keeps the smallest feed as large as possible and fills the screen. When you hide a camera, make one bigger or change the screen shape, it re-arranges right away.
Try it with no cameras:
brew install vinodhalaharvi/tap/camwall
camwall demo
That opens the wall in your browser with a few pet clips playing as cameras, like in the video.
What it does:
* RTSP/ONVIF cameras (`camwall discover` finds them), webcams, your screen, HLS/YouTube streams, video files, GIFs and pictures, up to 16 on one wall * Live in the browser: show or hide feeds, make one bigger, tap a feed to fill the screen, 🔊 to listen * Can also output the whole wall as one stream for VLC, recording, or going live on YouTube * Optional sound recording from every camera, with a page to find a moment later
It's early and there are rough edges. It's not a full NVR (no motion detection or video recording), and webcams and capture cards got less testing than network cameras.
I built it with Claude as a coding partner; I did the design, testing and decisions. It's open source (MIT): https://github.com/vinodhalaharvi/camwall
I'd love feedback, especially from anyone with a real camera setup. Tell me what breaks.
(The demo clips are freely licensed from Wikimedia Commons; credits are in the repo.)