mirror of
https://github.com/koush/scrypted.git
synced 2026-06-20 00:30:21 +01:00
The Reolink RTMP server does not percent-decode query parameter values - it compares the raw bytes from the URL against the stored password. URLSearchParams.set() percent-encodes values when the URL is serialised (WHATWG application/x-www-form-urlencoded), which corrupts passwords containing characters such as '!' (-> '%21'), '#' (-> '%23'), '+' (-> '%2B'), space, etc.
Affected: users whose firmware causes getLoginParameters to return {user, password} (instead of a Login-API token) and whose password contains any of those characters. Symptom: rebroadcast prebuffer fails with 'Socket received FIN' immediately after 'Sending play command'.
Append the RTMP credential pairs as raw bytes instead of going through URLSearchParams. Token-only path is unaffected (hex tokens contain no characters that require encoding). Mirrors the rationale of #1509 for the HTTP API path.
Fixes #2057
Co-authored-by: thllxb <223556219+Copilot@users.noreply.github.com>
Reolink Plugin for Scrypted
Reolink Cameras offer both RTMP and RTSP streams. RTMP streams are more reliable than RTSP on Reolink Cameras, and offers 3 streaming tiers. RTMP streams will be preferred by default. The defaults can be changed in the camera's Rebroadcast Stream Management settings.
Feature Support
* Reolink Cameras
* Two Way Audio - Reolink Two Way Audio is not supported. It is a proprietary and undocumented protocol.
* Reolink Doorbells
* Enable the Doorbell checkbox in the Scrypted settings for the Reolink device.
* The Reolink Doorbell supports two way audio via ONVIF. Reolink Cameras do not support this feature.
Some Reolink cameras support the ONVIF protocol. It may be worth experimenting with the ONVIF plugin instead. Using the Reolink Plugin is generally recommended due to the additional stream that is made available.
Camera Setup
Ensure that the following Server Settings are enabled. HTTPS must be disabled due to Reolink not handling https redirects properly.