Repository navigation
Releases: antowan/virtual-rtsp-camera
Releases · antowan/virtual-rtsp-camera
Release list
vcam 0.6.0
vcam 0.6.0
Added
- Live RTSP/TCP and UDP sources with low-latency, timeout-bounded input,
clean-stream copy forwarding, per-camera faults and source-outage recovery. waiting-for-sourcehealth state, credential-redacted live sources, and an
opt-in synthetic stream contract test covering format, CPU and recovery.
Install via pip / uv
pipx install vcam==0.6.0 # standalone CLI
uv tool install vcam==0.6.0Docker
docker pull konekuto/vcam:0.6.0
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.5.0
vcam 0.5.0
Added
- Synchronized playback application tests now map RTCP Sender Reports and RTP
timestamps back to decoded fixture frames across baseline and publisher
recovery, and verify cross-camera scene-start alignment within one frame.
Changed
- Clarify that native Linux containers share the host kernel clock and that
grantingCAP_SYS_TIMEcan affect the host; clock adjustment is safe only
in an isolated VM or when changing the host clock is explicitly intended. - Document the related RTCP-SR timestamp correction in
edge-ai/aibox-webserver-backend-ms3#905.
Install via pip / uv
pipx install vcam==0.5.0 # standalone CLI
uv tool install vcam==0.5.0Docker
docker pull konekuto/vcam:0.5.0
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.4.1
vcam 0.4.1
Changed
- Update the Ruff development dependency from 0.16.8 to 0.16.9 (#24).
- Update the Docker Hub description GitHub Action from v4 to v5 (#21).
- Retain the synchronized H.264 playback integration released in 0.4.0.
Install via pip / uv
pipx install vcam==0.4.1 # standalone CLI
uv tool install vcam==0.4.1Docker
docker pull konekuto/vcam:0.4.1
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.4.0
vcam 0.4.0
Added
- Opt-in synchronized H.264 copy playback through
sync_groupin the VCAM
package, configuration and supervisor. Compatible constant-frame-rate assets
share a monotonic scene clock across loops and recover isolated publishers at
admitted IDR points without restarting healthy peers. - Source admission, bounded indexing, startup barriers, progress watchdogs and
per-member synchronization health diagnostics. Installvcam[sync]for the
optional Python backend; Docker includes it. - Controlled 44-second application tests covering ten scene wraps, late joins,
reconnects, B-frame worker exits and suspended-worker recovery. The decoded
receipt spread gate remains 33.333 ms; this is not a universal skew SLA.
Changed
- README reorganized as a landing page with dedicated configuration, Docker,
service and testing guides.
Fixed
- Synchronized worker shutdown uses isolated command pipes instead of shared
stop-event locks that could deadlock after a worker was killed. - Startup readiness waits continue servicing active synchronization groups.
- Diagnostic telemetry is drained before watchdog evaluation and final evidence
collection.
Controlled local application tests and Docker runtime smoke passed.
Representative workloads, networks and deployment environments require
separate qualification; these results are not a universal synchronization SLA.
Install via pip / uv
pipx install vcam==0.4.0 # standalone CLI
uv tool install vcam==0.4.0Docker
docker pull konekuto/vcam:0.4.0
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.3.1
vcam 0.3.1
Fixed
- Replay now matches UDP RTP packets against the source and destination
endpoints negotiated in the RTSP handshake, preventing unrelated
colliding-port traffic from contaminating a track. SETUPrequests for an unknown track URI now return404instead of
silently configuring the first track.
Install via pip / uv
pipx install vcam==0.3.1 # standalone CLI
uv tool install vcam==0.3.1Docker
docker pull konekuto/vcam:0.3.1
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.3.0
vcam 0.3.0
Added
- Optional Toxiproxy Docker Compose profile for TCP network chaos testing,
including runtime latency, bandwidth, timeout, and disconnect scenarios. vcam doctorreports the optional Toxiproxy CLI or API when available.
Install via pip / uv
pipx install vcam==0.3.0 # standalone CLI
uv tool install vcam==0.3.0Docker
docker pull konekuto/vcam:0.3.0
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.2.1
vcam 0.2.1
- fix: align v0.2.1 package metadata
- chore(deps): Bump the python-deps group with 2 updates (#9)
- refactor: unify error hierarchy, extract CLI helpers, harden filters (#11)
Install via pip / uv
pipx install vcam==0.2.1 # standalone CLI
uv tool install vcam==0.2.1Docker
docker pull konekuto/vcam:0.2.1
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.2.0
vcam 0.2.0
Added
vcam replayserves a captured RTSP/RTP session back byte for byte, over
interleaved TCP or UDP, preserving the original payloads and inter-packet
timing. Captures are recorded withtcpdump; see the README for the workflow.
Changed
- The capture size limit is now 256 MB, down from 512 MB. Loading a capture
costs about 6x the file size in memory at roughly 15 MB/s, so the old limit
quietly allowed a ~3 GB resident set. The refusal message states the memory a
load would need. - Replay warns when the host could not keep pace with the capture. Late packets
were counted but never reported, and absolute deadlines keep the stream in
sync regardless, so the operator had no way to see it.
Fixed
--sdpdescriptions were modified in place while a capture was being
matched, dropping any media block the capture had no stream for.vcam --versionreported the wrong version. It was hardcoded in
vcam/__init__.pyand had drifted two releases behindpyproject.toml; it is
now read from the installed distribution.ReplayServer.shutdown()could return while a reader was still being sent
RTP. Two separate races: callers ofstop_playerafter the first returned
without waiting, and a connection was unregistered before it was closed, so
shutdown could not see it.- A capture played with
--no-loopnever hung up when it ran out, leaving
clients waiting on a silent connection. - The MediaMTX API port preflight probed
0.0.0.0while MediaMTX binds
127.0.0.1, so a taken port looked free and startup failed later with a
message blaming the RTSP port.
Security
- Container security updates were being served from a stale build cache, so
apt-get upgradehad frozen at the packages current when the cache was
written. The layer is now keyed on the build date and refreshes daily.
Install via pip / uv
pipx install vcam==0.2.0 # standalone CLI
uv tool install vcam==0.2.0Docker
docker pull konekuto/vcam:0.2.0
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.1.4
vcam 0.1.4
Added
vcam generate— interactive wizard that scans a directory for video files
and guides the user through building acameras.yamlwithout writing YAML by
hand. For each discovered file it asks whether to include it, confirms or
overrides the camera name (auto-derived from the file stem), probes the file
with ffprobe to recommendcopyvstranscode, and accepts a start offset.
Server settings (RTSP port, optional auth) are collected at the end. Supports
--scan <dir>to target a specific folder and--forceto overwrite an
existing config.
Install via pip / uv
pipx install vcam==0.1.4 # standalone CLI
uv tool install vcam==0.1.4Docker
docker pull konekuto/vcam:0.1.4
docker pull konekuto/vcam:latest # amd64 + arm64vcam 0.1.3
vcam 0.1.3
Added
- Repository governance baseline for public collaboration with low maintainer
overhead:- MIT
LICENSE CONTRIBUTING.mdwith scope boundaries and issue-first policyCODE_OF_CONDUCT.md(Contributor Covenant 2.1)- GitHub issue templates for bug reports and feature requests
- pull request template with focused review checklist
- stale workflow to auto-manage inactive issues/PRs
- MIT
- README badges and a contribution policy summary to improve discoverability and
set contribution expectations on the landing page.
Install via pip / uv
pipx install vcam==0.1.3 # standalone CLI
uv tool install vcam==0.1.3Docker
docker pull konekuto/vcam:0.1.3
docker pull konekuto/vcam:latest # amd64 + arm64