core: Reolink RLC-820A camera entity cannot play video stream
The problem
Hi folks,
I’m facing an issue when using the Reolink integration with an RLC-820A camera, details as follows:
Firmware: v3.0.0.124_20112601 Hardware: IPC_523128M8MP
Essentially what is happening is the integration works correctly, the camera can be added and everything appears to work as you would expect. However, when viewing either the ‘main’ or ‘sub’ camera entities only a preview image is shown, and the video stream never starts.
Viewing the logs, there appears to be 404 / “Not found” errors; these errors persist when either using RTMP or RTSP.
My suspicion is that for this particular camera the integration is using the wrong URL for accessing the stream, this is documented in the following post - https://www.reddit.com/r/reolinkcam/comments/kziu4t/820a_no_substream/. For the ‘main’ stream, I have replicated the behaviour in VLC by trying the h264 path (which returns an error) and the h265 path which works. When looking at the logs, it appears the integration is trying to access the h264 path on the main stream, which doesn’t exist for this camera.
My confusion comes with the sub stream, which suffers from exactly the same issue (preview only, stream won’t play). The sub stream does in fact have a h264 path which is confirmed to work with VLC. When viewing this camera entity, there are no errors produced by the integration, the stream just sits there frozen. If I leave the preview open for some time (1-2 minutes) I do start to see the following logs which confusingly refer to the main URL:
2023-01-11 11:12:49.894 ERROR (stream_worker) [homeassistant.components.stream.stream.camera.living_room_camera_main] Error from stream worker: Error opening stream (HTTP_NOT_FOUND, Server returned 404 Not Found) rtsp://:@192.168.4.45:554/h264Preview_01_main 2023-01-11 11:13:11.479 ERROR (stream_worker) [homeassistant.components.stream.stream.camera.living_room_camera_main] Error from stream worker: Error opening stream (HTTP_NOT_FOUND, Server returned 404 Not Found) rtsp://:@192.168.4.45:554/h264Preview_01_main
I’m not sure if this is caused by the sub stream entity switching to the main stream, or just coincidence caused by some other background polling.
Please let me know if there is any further debug information I can provide to help diagnose this one!
What version of Home Assistant Core has the issue?
2023.1.2
What was the last working version of Home Assistant Core?
N/A
What type of installation are you running?
Home Assistant OS
Integration causing the issue
reolink
Link to integration documentation on our website
https://www.home-assistant.io/integrations/reolink
Diagnostics information
Not possible for this integration
Example YAML snippet
N/A configured via the UI
Anything in the logs that might be useful for us?
(When using RTMP)
2023-01-11 10:46:26.438 ERROR (stream_worker) [homeassistant.components.stream.stream.camera.living_room_camera_main] Error from stream worker: Error opening stream (EOF, End of file) rtmp://192.168.4.45:1935/bcs/channel0_main.bcs?channel=0&stream=0&user=****&password=****
2023-01-11 10:55:41.000 ERROR (stream_worker)
(When using RTSP)
[homeassistant.components.stream.stream.camera.living_room_camera_main] Error from stream worker: Error opening stream (HTTP_NOT_FOUND, Server returned 404 Not Found) rtsp://****:****@192.168.4.45:554/h264Preview_01_main
Additional information
No response
About this issue
- Original URL
- State: closed
- Created a year ago
- Comments: 15 (9 by maintainers)
@home-assistant close
Greath to hear your system is now working properly.
I will implement the GetRtspURL as the primary method, upon fail use the GetEnc with the old style h264/h265 URL and if that fails default to the new style URL withouth the h264/h265. Will make a PR for this soon.
Besides next up on my to do list for reolink is implementing a update entity so HomeAssistant will notify you about reolink firmware updates and you can update from within HomeAssistant just like you update HomeAsssitant itself. That way users will be propted to update their old firmware.
I suppose I could do this myself 😃 I’ve raised this small PR to update the documentation https://github.com/home-assistant/home-assistant.io/pull/25779