Repository navigation
What's new
Pan, tilt and zoom
- Zoom in and out, the four diagonals, and patrol start and stop on the Live tab's pad and in the control API. Zoom shows on cameras that report a zoom range; patrol on cameras with a patrol or at least two presets.
- Calibrate now says "calibrating" while the camera sweeps, instead of reporting a refusal it never got.
- Auto return is written through the camera's web API when HTTP is on, where it takes effect.
- Calibrate and Auto return are hidden for cameras behind a Reolink NVR or Home Hub, which does not pass them on.
- A command sent during the camera's startup self check says the camera is still checking itself, instead of a bare "status 400".
Talk volume
talk_gain_dbper camera (Settings > Audio): -12 to +12 dB in 3 dB steps, with a limiter, for cameras whose speaker is loud at full scale. It covers the page's hold to talk and Frigate's talk button.
Adding a camera can leave its settings alone
- The add-camera form has a box, ticked by default, for turning on RTSP, ONVIF and the camera's web page when they are off. Untick it and reostream changes nothing on the camera.
- The network scan only looks now. Adding cameras from it has the same box, and the services are switched then, on the cameras you chose.
Mac
- Native Mac downloads (
reostream-darwin-arm64,reostream-darwin-amd64). Docker on a Mac can't reach battery cameras, so on a Mac run reostream natively from Terminal; see the setup guide's Mac section.
Bug reports
- The image includes
bcpcap, which decodes a Wireshark capture of the Reolink app on your own machine, so a capture can be shared without your password:docker run --rm -v "$PWD":/c --entrypoint /usr/local/bin/bcpcap ghcr.io/volttech21/reostream:latest -password PW -xml /c/capture.pcap
Home Assistant
- Face, Other and doorbell Visitor sensors, announced the first time a camera reports them.
- The MQTT login (
mqtt_user,mqtt_password) can come from the environment, like the other passwords ("$NAME").
Fixes
- Older cameras that logged in and never streamed (C1 Pro, C2 Pro, RLC-410/410S on v2/v3.0 firmware, #23): reostream now uses the encryption the camera picks at login, and skips the leftover padding these cameras put between video packets.
- SD card recordings that came back with 0 frames (TrackMix, #21): frames split across the camera's download chunks are kept, and the codec is read from the video itself, since a TrackMix WiFi labels H.265 recordings H.264.
- A TrackMix with an SD card now gets its Recordings tab (it reports no card in its hardware list, so reostream asks for the card directly), and the recordings player says when the browser can't play a clip instead of loading forever.
- Doorbell motion clips saved as fragmented MP4 (Battery Doorbell 2nd Gen, #22) now play into the presence stream.
- A short detection's Frigate event no longer stays open: when Frigate hasn't saved the new event yet, ending it is asked again for a few seconds (#26).
- A battery camera looked up by address now says it's a battery camera (add it from the scan), and a battery camera that refuses its password mentions that a paired Home Hub or NVR keeps its own password.
- Duo 3 at 16 MP (#15): the player's own buttons stay upright when the picture is turned, and recordings on reostream's page turn too. The picture is only marked as rotated for Frigate when
rotateis set in the config: Frigate's live view and playback ignore the mark, and its detect squeezed the picture. See the Duo 3 section of the setup guide for the Frigate setup that works. - The HTTP
.tsstream keeps its timeline when a camera reconnects. It used to start again at zero, which go2rtc reading the.tspassed on to recordings. - A camera that drops its connection without closing it is noticed after 4 seconds instead of 15, so a short network blip costs seconds of footage, not most of a minute.
- One person with a face detected is one Frigate event, not two.
- Turning a floodlight on no longer reads back as "motion" while the camera catches up.
- Saving a camera's settings no longer drops its
rotatesetting. - A long stream address wraps on a phone.
Update
docker pull ghcr.io/volttech21/reostream:latest, then recreate the container (your config is kept).
Read reostream's RTSP over TCP (Frigate and go2rtc do already): at 16 MP, UDP loses packets.