[Config Support]: #backchannel=0 argument isn't being passed to go2rtc
Describe the problem you are having
Looks like the #backchannel=0 argument isn't being passed to go2rtc from the Frigate config file. I've even added ' ' around the input as I'm aware that Frigate sees # as comments.
This is causing my doorbell button press to not work.
Version
0.12.0-0dbf909
Frigate config file
cameras:
frontdoor:
ffmpeg:
inputs:
- path: 'rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0&#backchannel=0'
roles:
- restream
- path: rtsp://localhost:8554/frontdoor
roles:
- record
Relevant log output
N/A
Frigate stats
No response
Operating system
Debian
Install method
Docker Compose
Coral version
CPU (no coral)
Any other information that may be helpful
No response
Yeah we should probably just set that by default since frigate doesn't support 2 way talk (currently).
by the way do you have force_audio set to False? I wouldn't expect backchannel to work when using ffmpeg
Yeah I've got it set to False.
restream:
enabled: True
force_audio: False
Okay thanks
Which doorbell is yours?
@felipecrs Amcrest AD410
May I ask which integration are you using to detect the button press event?
Sure, the dahua one:
https://github.com/rroller/dahua
Interesting, when I was using this integration, the button press event was extremely unreliable. Some times it didn't work, some times it took too long to detect.
I know you are not asking this, but I ended up using the Asterisk add-on and configuring the doorbell to connect to it as a SIP server. When someone presses the button, the doorbell calls a number in Asterisk, which I then configured in Asterisk to start my HA automation by using the HA API. It works 100% of the time and it's as fast as it can be.
But maybe the issues I had with the Dahua integration was because I had go2rtc with backchannel activated. Never thought on that!
The dahua integration always worked well for my ad410 button presses back when I used that
The dahua integration always worked well for my ad410 button presses back when I used that
Maybe it's because you were not using go2rtc at that time? I was, lol
The dahua integration always worked well for my ad410 button presses back when I used that
Maybe it's because you were not using go2rtc at that time? I was, lol
I was using go2rtc, I even used it with 2 way talk but I had a separate camera setup with backchannel enabled and my main stream was with backchannel disabled
So apparently I didn't notice, but apparently my AD410 stopped doing anything but recording video/audio since upgrading to go2rtc... adding #backchannel=0 did not help (although it appears its supposed to be default). Moving the stream URL out of the go2rtc section and back to the camera resolves it for me.... I'm on beta8
So apparently I didn't notice, but apparently my AD410 stopped doing anything but recording video/audio since upgrading to go2rtc... adding #backchannel=0 did not help (although it appears its supposed to be default). Moving the stream URL out of the go2rtc section and back to the camera resolves it for me.... I'm on beta8
What do you mean "stopped doing anything but recording video/audio", what do you expect it to be doing? You should probably make your own issue with the config and logs
Responding to doorbell button presses, config changes, remote restart,, etc. Apparently the AD410, while the backchannel is active on 2 way talk, does not respond to anything at all (a known issue with it, perhaps by design). I can go ahead and make a new issue if you like, I'm probably going to spin up a separate frigate instance to try to pinpoint the issue further, so it'll probably be this weekend
Oh, then that's definitely the backchannel issue. Most likely the config was just not correct to disable it. And backchannel is still on by default with the latest go2rtc release.
Yes, thats why I decided to comment here instead of make a new issue in the first place, beta 8 includes #5021 which disables backchannel by default?
Yes, thats why I decided to comment here instead of make a new issue in the first place, beta 8 includes #5021 which disables backchannel by default?
That PR is not relevant anymore since beta5 which completely reworked go2rtc feature
Ok, this is my config in the go2rtc section:
gp525_doorbell:
- rtsp://admin:
I'm not seeing anything relevant in the logs (which kind of makes sense, there is no error/warnings from Frigate's point of view, its just putting the doorbell into 2 way talk mode and keeping it there), the video stream continues to work
If you open the go2rtc webUI, please get the info for that stream and paste it here.
{
"producers": [
{
"type": "RTSP source",
"url": "rtsp://10.10.30.30:554/cam/realmonitor?channel=1\u0026subtype=0/",
"remote_addr": "10.10.30.30:554",
"user_agent": "go2rtc/1.1.2",
"medias": [
"video, sendonly, 96 H264/90000",
"audio, sendonly, 97 MPEG4-GENERIC/8000"
],
"tracks": [
"96 H264/90000, sinks=1",
"97 MPEG4-GENERIC/8000, sinks=1"
],
"recv": 5318314
}
],
"consumers": [
{
"type": "RTSP client",
"url": "rtsp://127.0.0.1:8554/gp525_doorbell",
"remote_addr": "127.0.0.1:44820",
"user_agent": "FFmpeg Frigate/0.12.0-27a31e7",
"medias": [
"video, recvonly, 96 H264/90000",
"audio, recvonly, 97 MPEG4-GENERIC/8000"
],
"tracks": [
"96 H264/90000, sinks=1",
"97 MPEG4-GENERIC/8000, sinks=1"
],
"send": 5317834
}
]
}
Okay, it's not seeing your backchannel so you either have another stream which is the one sound this or you have webRTC card / some other instance of go2rtc running somewhere without this option
So I do use the Frigate card in Home Assistant. When I open the page with the card, there doesn't seem to be any additional consumers or anything in go2rtc. I don't have any separate configuration of go2rtc, and changing the path on the cameras: ffmpeg: input back to the same URL as in the go2rtc section makes the problem go away very consistently, so I'm a bit stumped. I plan to try to get the 2 way audio working as well as soon as I get some free time with go2rtc so I guess I'm going to give that a try next and see if it helps me figure anything else out.
I'd suggest pasting your full config here
Its long, but here you go: Its the last camera configuration, if I have the configuration as posted, the doorbell doesn't work. If I simply swap the path to the commented out one, I experience no issues at all, even leaving go2rtc configured
ui:
use_experimental: true
#logger:
# logs:
# frigate.record: debug
birdseye:
enabled: True
restream: True
mode: motion
mqtt:
host: 10.10.22.11
user: frigate
password: password
detectors:
coral:
type: edgetpu
record:
enabled: True
retain:
days: 14
mode: motion
events:
retain:
default: 60
mode: active_objects
objects:
track:
- person
- bicycle
- car
- motorcycle
- bus
- boat
- cat
- dog
- horse
- cow
filters:
person:
# Optional: minimum width*height of the bounding box for the detected object (default: 0)
min_area: 500
# Optional: maximum width*height of the bounding box for the detected object (default: 24password)
#max_area: 100000
# Optional: minimum width/height of the bounding box for the detected object (default: 0)
#min_ratio: 0.5
# Optional: maximum width/height of the bounding box for the detected object (default: 24password)
#max_ratio: 2.0
# Optional: minimum score for the object to initiate tracking (default: shown below)
min_score: 0.5
# Optional: minimum decimal percentage for tracked object's computed score to be considered a true positive (default: shown below)
threshold: 0.7
go2rtc:
streams:
warehouse_exterior_doorbell:
- ffmpeg:rtsp://admin:password@@10.10.22.30:8557/mpeg/media.amp
warehouse_exterior_nw:
- rtsp://admin:[email protected]:554/Streaming/Channels/101
# warehouse_exterior_nw_sub:
# - rtsp://admin:[email protected]:554/Streaming/Channels/102
warehouse_exterior_sw:
- rtsp://admin:[email protected]:554/Streaming/Channels/101
# warehouse_exterior_sw_sub:
# - rtsp://admin:[email protected]:554/Streaming/Channels/102
warehouse_exterior_se:
- rtsp://admin:[email protected]:554/stream0
# warehouse_exterior_se_sub:
# - rtsp://admin:[email protected]:554/stream1
warehouse_exterior_front:
- rtsp://admin:[email protected]:554/h265Preview_01_main
warehouse_exterior_front_sub:
- rtsp://admin:[email protected]:554/h264Preview_01_sub
warehouse_workbench:
- rtsp://admin:[email protected]:554/h264Preview_01_main
# warehouse_workbench_sub:
# - rtsp://admin:[email protected]:554/h264Preview_01_sub
warehouse_interior_front:
- rtsp://admin:[email protected]:554/h264Preview_01_main
# warehouse_interior_front_sub:
# - rtsp://admin:[email protected]:554/h264Preview_01_sub
warehouse_interior_office:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif
# warehouse_interior_office_sub:
# - rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
warehouse_interior_overview:
- rtsp://admin:[email protected]:554/Streaming/Channels/101
# warehouse_interior_overview_sub:
# - rtsp://admin:[email protected]:554/Streaming/Channels/102
gp_clubhouse_gym_1:
- rtsp://admin:[email protected]:554/stream0
# gp_clubhouse_gym_1_sub:
# - rtsp://admin:[email protected]:554/stream1
gp_clubhouse_gym_2:
- rtsp://admin:[email protected]:554/stream0
# gp_clubhouse_gym_2_sub:
# - rtsp://admin:[email protected]:554/stream1
gp_clubhouse_front_door:
- rtsp://admin:[email protected]:554/stream0
# gp_clubhouse_front_door_sub:
# - rtsp://admin:[email protected]:554/stream1
gp_clubhouse_back_door:
- rtsp://admin:[email protected]:554/stream0
# gp_clubhouse_back_door_sub:
# - rtsp://admin:[email protected]:554/stream1
gp_clubhouse_banquet:
- rtsp://admin:[email protected]:554/stream0
# gp_clubhouse_banquet_sub:
# - rtsp://admin:[email protected]:554/stream1
gp_clubhouse_pool_porch:
- rtsp://admin:[email protected]:554/Streaming/Channels/101
# gp_clubhouse_pool_porch_sub:
# - rtsp://admin:[email protected]:554/Streaming/Channels/102
gp_clubhouse_pool:
- rtsp://admin:[email protected]:554/ch01/0
# gp_clubhouse_pool_sub:
# - rtsp://admin:[email protected]:554/ch01/1
gp_clubhouse_firepit:
- rtsp://admin:[email protected]:554/ch01/0#audio=aac
# gp_clubhouse_firepit_sub:
# - rtsp://admin:[email protected]:554/ch01/1
gp_clubhouse_parking:
- rtsp://admin:[email protected]:554/h265Preview_01_main
gp_clubhouse_parking_sub:
- rtsp://admin:[email protected]:554/h264Preview_01_sub
gp636_doorbell:
- rtsp://admin:[email protected]:554/
gp525_doorbell:
- rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
webrtc:
candidates:
- 10.10.22.11:8555
- stun:8555
cameras:
warehouse_exterior_doorbell:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_exterior_doorbell
roles:
- record
- detect
hwaccel_args: preset-nvidia-h264
detect:
width: 1280
height: 720
warehouse_exterior_nw:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_exterior_nw
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_exterior_nw_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h264
detect:
width: 1920
height: 1080
warehouse_exterior_sw:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_exterior_sw
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_exterior_sw_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h264
detect:
width: 1920
height: 1080
warehouse_exterior_se:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_exterior_se
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_exterior_se_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
warehouse_exterior_front:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_exterior_front_sub
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_exterior_front_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 4608
height: 1728
warehouse_workbench:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_workbench
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_workbench_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 2560
height: 1920
warehouse_interior_front:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_interior_front
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_interior_front_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 2560
height: 1920
warehouse_interior_office:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_interior_office
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_interior_office_sub
# roles:
- detect
# input_args: -ss 00:01
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h265
detect:
width: 3840
height: 2160
warehouse_interior_overview:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/warehouse_interior_overview
roles:
- record
#- path: rtsp://127.0.0.1:8554/warehouse_interior_overview_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h264
detect:
width: 1920
height: 1080
gp_clubhouse_gym_1:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_gym_1
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_gym_1_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
motion:
mask:
- 2592,173,2592,0,0,0,0,337
objects:
filters:
bicycle:
mask:
- 1635,80,1886,1019,408,1059,350,177
motorcycle:
mask:
- 1635,80,1886,1019,408,1059,350,177
gp_clubhouse_gym_2:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_gym_2
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_gym_2_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
motion:
mask:
- 2592,0,0,0,0,385
objects:
filters:
bicycle:
mask:
- 2391,1369,1261,677,1331,135,2542,274
motorcycle:
mask:
- 2391,1369,1261,677,1331,135,2542,274
gp_clubhouse_front_door:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_front_door
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_front_door_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
gp_clubhouse_back_door:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_back_door
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_back_door_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
gp_clubhouse_banquet:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_banquet
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_banquet_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h265
detect:
width: 2592
height: 1944
gp_clubhouse_pool_porch:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_pool_porch
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_pool_porch_sub
# roles:
- detect
hwaccel_args: preset-nvidia-h264
detect:
width: 1920
height: 1080
gp_clubhouse_pool:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_pool
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_pool_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h265
detect:
width: 5120
height: 1440
gp_clubhouse_firepit:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_firepit
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_firepit_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h265
motion:
mask:
- 2211,0,0,0,0,495,1795,224,1795,67,2202,62
- 2061,1203,1952,361,1771,361,1702,1182
objects:
filters:
person:
mask:
- 2114,1213,1610,1210,1612,366,2080,361
detect:
width: 3840
height: 2160
gp_clubhouse_parking:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp_clubhouse_parking_sub
roles:
- record
#- path: rtsp://127.0.0.1:8554/gp_clubhouse_parking_sub
# roles:
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 1536
height: 576
# width: 4608
# height: 1728
# output_args:
# record: -f segment -segment_time 300 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v h264_vaapi -crf 18 -c:a copy -vf format=nv12|vaapi,hwupload -b:v 4M -r 15
# clips: -f segment -segment_time 30 -segment_format mp4 -reset_timestamps 1 -strftime 1 -c:v h264_vaapi -crf 18 -c:a copy -vf format=nv12|vaapi,hwupload -b:v 4M -r 15
gp636_doorbell:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/gp636_doorbell
roles:
- record
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 1920
height: 1080
motion:
mask:
- 0,0,958,0,926,599,0,499
gp525_doorbell:
ffmpeg:
inputs:
#- path: rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0
- path: rtsp://127.0.0.1:8554/gp525_doorbell
roles:
- record
- detect
output_args:
record: preset-record-generic-audio-aac
hwaccel_args: preset-nvidia-h264
detect:
width: 2560
height: 1920
Sorry to Pile on with a "me too" moment, but I have an Amcrest AD110 with this same issue. I can get video streams via frigate, and the detection is great, but while Frigate is running, the doorbell is in "talk" mode, which disables the actual doorbell button.
The solution supposedly is to append #backchannel=0 to the stream URL, but Frigate is not passing that information to go2rtc.
go2rtc:
streams:
doorbell_live:
- rtsp://admin:password@ip:554/cam/realmonitor?channel=1&subtype=0
doorbell_detect:
- rtsp://admin:password@ip:554/cam/realmonitor?channel=1&subtype=1#backchannel=0
cameras:
doorbell:
ffmpeg:
inputs:
- path: rtsp://127.0.0.1:8554/doorbell_detect
input_args: preset-rtsp-restream
roles:
- detect
output_args:
record: preset-record-generic-audio-copy
detect:
width: 640
height: 480
live:
stream_name: doorbell_live
In go2rtc it looks like this:
{
"producers": [
{
"type": "RTSP source",
"url": "rtsp://ip:554/cam/realmonitor?channel=1\u0026subtype=1/",
"remote_addr": "ip:554",
"user_agent": "go2rtc/1.2.0",
"medias": [
"video, sendonly, 96 H264/90000",
"audio, sendonly, 97 MPEG4-GENERIC/16000"
],
"tracks": [
"96 H264/90000, sinks=1",
"97 MPEG4-GENERIC/16000, sinks=1"
],
"recv": 8346455
}
],
"consumers": [
{
"type": "RTSP client",
"url": "rtsp://127.0.0.1:8554/doorbell_detect",
"remote_addr": "127.0.0.1:43814",
"user_agent": "FFmpeg Frigate/0.12.1-367d724",
"medias": [
"video, recvonly, 96 H264/90000",
"audio, recvonly, 97 MPEG4-GENERIC/16000"
],
"tracks": [
"96 H264/90000, sinks=1",
"97 MPEG4-GENERIC/16000, sinks=1"
],
"send": 8344151
}
]
I've tried doing all sorts of yaml escape characters, but nothing seems to pass the value.
but Frigate is not passing that information to go2rtc.
that is incorrect. Frigate does not pass anything to go2rtc, it literally just hands that part of the config directly to go2rtc. You won't see backchannel in the url part that is shown in the stream info. You can tell it is working because there are no recvonly streams in the producer side.
In this case the problem is likely that you only have #backchannel=0 on the sub stream and not the main stream
Ok, well thanks for the information. I'm not sure exactly what changed (because I was running the same config for weeks, without a working doorbell button), but I do see that if I put #backchannel=0 on the main stream, it is showing up in go2rtc.
The substream seems to not care either way, which is surprising to me, but maybe that's just expected behavior.
Either way: If I add the backchannel statement to the main stream, I can use the doorbell while watching the video, if I leave it off, it goes into 2 way talk mode.
Thanks for the teachable moment.
@NickM-27 Not to revive this issue thread, but with version 0.14, is there a way to get two-way audio support with the Amcrest doorbell that doesn't break the doorbell button? I assume not since gortc will keep the connection open. I assume it's not possible two wire two different gortc sessions, one for backchannel audio and one for the consumption of Frigate?