Hi everyone,
TL:DR : I am having trouble when sharing a camera through the homekit bridge integration.
While I am inside my networki, I can correctly see the cameras in my Home app, I can stream the videos and see the still images.
However when I am outside my network (i.e. with iphone connected to cellular network) I can only see the still images but the streaming does not seem to work.
Longer part:
I have dug a bit more in dept into this issue but I have reached a point in which I don’t know anymore what to look for.
My setup is as follows:
- Camera: Reolink E1 Zoom
- Router: Fritz!Box 3490
- Home Assistant Core 0.112.1:
- running on Docker official images
- running on Raspberri Pi4 connected by ethernet cable to the router
- running on host network
- Apple TV 4K to act as Homekit Hub connected by ethernet cable to the router
The camera can be added to HA in three ways:
- using the Generic IP Camera platform
- using the ONVIF platform
- using Reolink custom component (https://github.com/fwestenberg/reolink)
The result does not change depending on which platform is used to add the Camera to HA.
Current configuration of the yaml file below [1]
When I stream through Home app and I am connected to the Wifi network I notice that HA spawns an FFMPEG process with the following commandline
ffmpeg -i rtsp://[username]:[password][email protected]:554/h264Preview_01_sub -map 0:v:0 -an -c:v copy -tune zerolatency -pix_fmt yuv420p -r 30 -b:v 299k -bufsize 1196k -maxrate 299k -payload_type 99 -ssrc 5589354 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params g7b9hIFZOfsd6MPnzmlH4MCDyLDow+3IkTN4gneE srtp://192.168.178.24:53448?rtcpport=53448&localrtcpport=53448&pkt_size=1316
When I stream outside the Wifi (cellular) I see:
ffmpeg -i rtsp://[username]:[password][email protected]:554/h264Preview_01_sub -map 0:v:0 -an -c:v copy -tune zerolatency -pix_fmt yuv420p -r 15 -b:v 132k -bufsize 528k -maxrate 132k -payload_type 99 -ssrc 5906845 -f rtp -srtp_out_suite AES_CM_128_HMAC_SHA1_80 -srtp_out_params WO/cpvA8zfkvlwjlG1IAXTtnC25gvLBpKTq1iHq+ srtp://192.168.178.33:65304?rtcpport=65304&localrtcpport=65304&pkt_size=1316
Where:
- 192.168.178.25 - Camera IP address
- 192.168.178.24 - Iphone IP address while inside the wifi network
- 192.168.178.33 - Apple TV IP address inside the wifi network
So I assume that the Apple TV is acting as a relay and is supposed to forward the stream to my device.
Even though it should not be needed I have tried enabling uPnP port forwarding on the router for the Apple TV without any real change, looks like it is not even trying opening ports.
Is there anything I can do to diagnose further?
Thanks!
[1] yaml configuration
camera:
- platform: reolink_dev
host: 192.168.178.25
username: !secret reolink_username
password: !secret reolink_password
name: reolink_e1
stream: sub #using the sub stream with the custom component in order to avoid bandwidth problems while streaming remotely
protocol: rtsp
scan_interval: 20
homekit:
name: Home Assistant Bridge
filter:
include_entities:
- camera.reolink_e1_profile000_mainstream #camera added by the ONVIF integration, full resolution stream
- camera.reolink_e1_profile001_substream #camera added by the ONVIF integration, full resolution stream
- camera.reolink_e1 #camera added by the Reolink custom component
entity_config:
camera.reolink_e1_profile000_mainstream:
name: Reolink clear
support_audio: True
video_codec: copy
audio_codec: copy
camera.reolink_e1_profile001_substream:
name: Reolink fast
support_audio: True
video_codec: copy
audio_codec: copy
camera.reolink_e1:
name: Reolink test
#support_audio: True
video_codec: copy
#audio_codec: copy