
A roomful of virtual security cameras without buying or wiring a single one — plus the tool that proves the video actually made it through.
Camera Feed Lab serves configurable RTSP camera feeds from generated test patterns or approved recordings, so you can develop and test an NVR, VMS, video wall, player, analytics service, or any other RTSP consumer as though real cameras were attached. The same configuration runs on a laptop, in CI, or as a shared lab feeder.
Software that consumes surveillance video is hard to develop and test without a stable camera estate. Physical cameras are finite, location-dependent, privacy-sensitive, and prone to changes outside the test. A directory of video files is reproducible, but it does not exercise RTSP connections, stream startup, fan-out, pacing, readiness, process lifecycle, or time-aligned replay. Hand-written FFmpeg commands fill the gap for one experiment, but they are hard to review, repeat, scale, and carry between environments.
Camera Feed Lab packages those concerns into one controlled test fixture. The portable default needs no media files — it produces a site-neutral set of synthetic camera feeds immediately. More realistic tests mount local or shared media read-only and replay it without embedding footage or deployment details in the image or repository.
Validates a JSON manifest, supervises MediaMTX and FFmpeg, and publishes the requested RTSP/TCP camera paths.
The verification half. It observes what a test consumer actually receives rather than assuming a healthy simulator means a healthy end-to-end system.
Anyone building or testing software that expects network cameras.
Camera Feed Lab is deliberately narrower than a real NVR — it is the stream-serving and verification side of a camera/NVR test environment.
Camera Feed Lab is MIT-licensed and released as open source at v0.2.0. A Go supervisor wraps pinned MediaMTX and FFmpeg in a hardened, non-root, read-only container. The default Compose stack is self-contained: clone the repository, build, and it generates a site-neutral synthetic profile with no footage or credentials required.