We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[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

```yaml
cameras:
  frontdoor:
    ffmpeg:
      inputs:
        - path: 'rtsp://admin:supersecretpassword@192.168.0.25:554/cam/realmonitor?channel=1&subtype=0&#backchannel=0'
          roles:
            - restream
        - path: rtsp://localhost:8554/frontdoor
          roles:
            - record
```


### Relevant log output

```shell
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_

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `frigate/restream.py`
Content:
```
1 """Controls go2rtc restream."""
2 
3 
4 import logging
5 import requests
6 
7 from typing import Optional
8 
9 from frigate.config import FrigateConfig, RestreamCodecEnum
10 from frigate.const import BIRDSEYE_PIPE
11 from frigate.ffmpeg_presets import (
12     parse_preset_hardware_acceleration_encode,
13     parse_preset_hardware_acceleration_go2rtc_engine,
14 )
15 from frigate.util import escape_special_characters
16 
17 logger = logging.getLogger(__name__)
18 
19 
20 def get_manual_go2rtc_stream(
21     camera_url: str, codec: RestreamCodecEnum, engine: Optional[str]
22 ) -> str:
23     """Get a manual stream for go2rtc."""
24     if codec == RestreamCodecEnum.copy:
25         return f"ffmpeg:{camera_url}#video=copy#audio=aac#audio=opus"
26 
27     if engine:
28         return (
29             f"ffmpeg:{camera_url}#video={codec}#hardware={engine}#audio=aac#audio=opus"
30         )
31 
32     return f"ffmpeg:{camera_url}#video={codec}#audio=aac#audio=opus"
33 
34 
35 class RestreamApi:
36     """Control go2rtc relay API."""
37 
38     def __init__(self, config: FrigateConfig) -> None:
39         self.config: FrigateConfig = config
40 
41     def add_cameras(self) -> None:
42         """Add cameras to go2rtc."""
43         self.relays: dict[str, str] = {}
44 
45         for cam_name, camera in self.config.cameras.items():
46             if not camera.restream.enabled:
47                 continue
48 
49             for input in camera.ffmpeg.inputs:
50                 if "restream" in input.roles:
51                     if (
52                         input.path.startswith("rtsp")
53                         and not camera.restream.force_audio
54                     ):
55                         self.relays[cam_name] = escape_special_characters(input.path)
56                     else:
57                         # go2rtc only supports rtsp for direct relay, otherwise ffmpeg is used
58                         self.relays[cam_name] = get_manual_go2rtc_stream(
59                             escape_special_characters(input.path),
60                             camera.restream.video_encoding,
61                             parse_preset_hardware_acceleration_go2rtc_engine(
62                                 self.config.ffmpeg.hwaccel_args
63                             ),
64                         )
65 
66         if self.config.restream.birdseye:
67             self.relays[
68                 "birdseye"
69             ] = f"exec:{parse_preset_hardware_acceleration_encode(self.config.ffmpeg.hwaccel_args, f'-f rawvideo -pix_fmt yuv420p -video_size {self.config.birdseye.width}x{self.config.birdseye.height} -r 10 -i {BIRDSEYE_PIPE}', '-rtsp_transport tcp -f rtsp {output}')}"
70 
71         for name, path in self.relays.items():
72             params = {"src": path, "name": name}
73             requests.put("http://127.0.0.1:1984/api/streams", params=params)
74
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/frigate/restream.py b/frigate/restream.py
--- a/frigate/restream.py
+++ b/frigate/restream.py
@@ -52,7 +52,9 @@
                         input.path.startswith("rtsp")
                         and not camera.restream.force_audio
                     ):
-                        self.relays[cam_name] = escape_special_characters(input.path)
+                        self.relays[
+                            cam_name
+                        ] = f"{escape_special_characters(input.path)}#backchannel=0"
                     else:
                         # go2rtc only supports rtsp for direct relay, otherwise ffmpeg is used
                         self.relays[cam_name] = get_manual_go2rtc_stream(

{"golden_diff": "diff --git a/frigate/restream.py b/frigate/restream.py\n--- a/frigate/restream.py\n+++ b/frigate/restream.py\n@@ -52,7 +52,9 @@\n                         input.path.startswith(\"rtsp\")\n                         and not camera.restream.force_audio\n                     ):\n-                        self.relays[cam_name] = escape_special_characters(input.path)\n+                        self.relays[\n+                            cam_name\n+                        ] = f\"{escape_special_characters(input.path)}#backchannel=0\"\n                     else:\n                         # go2rtc only supports rtsp for direct relay, otherwise ffmpeg is used\n                         self.relays[cam_name] = get_manual_go2rtc_stream(\n", "issue": "[Config Support]: #backchannel=0 argument isn't being passed to go2rtc\n### Describe the problem you are having\n\nLooks like the #backchannel=0 argument isn't being passed to go2rtc from the Frigate config file. \r\nI've even added ' ' around the input as I'm aware that Frigate sees # as comments.\r\n\r\nThis is causing my doorbell button press to not work. \n\n### Version\n\n0.12.0-0dbf909\n\n### Frigate config file\n\n```yaml\ncameras:\r\n  frontdoor:\r\n    ffmpeg:\r\n      inputs:\r\n        - path: 'rtsp://admin:supersecretpassword@192.168.0.25:554/cam/realmonitor?channel=1&subtype=0&#backchannel=0'\r\n          roles:\r\n            - restream\r\n        - path: rtsp://localhost:8554/frontdoor\r\n          roles:\r\n            - record\n```\n\n\n### Relevant log output\n\n```shell\nN/A\n```\n\n\n### Frigate stats\n\n_No response_\n\n### Operating system\n\nDebian\n\n### Install method\n\nDocker Compose\n\n### Coral version\n\nCPU (no coral)\n\n### Any other information that may be helpful\n\n_No response_\n", "before_files": [{"content": "\"\"\"Controls go2rtc restream.\"\"\"\n\n\nimport logging\nimport requests\n\nfrom typing import Optional\n\nfrom frigate.config import FrigateConfig, RestreamCodecEnum\nfrom frigate.const import BIRDSEYE_PIPE\nfrom frigate.ffmpeg_presets import (\n    parse_preset_hardware_acceleration_encode,\n    parse_preset_hardware_acceleration_go2rtc_engine,\n)\nfrom frigate.util import escape_special_characters\n\nlogger = logging.getLogger(__name__)\n\n\ndef get_manual_go2rtc_stream(\n    camera_url: str, codec: RestreamCodecEnum, engine: Optional[str]\n) -> str:\n    \"\"\"Get a manual stream for go2rtc.\"\"\"\n    if codec == RestreamCodecEnum.copy:\n        return f\"ffmpeg:{camera_url}#video=copy#audio=aac#audio=opus\"\n\n    if engine:\n        return (\n            f\"ffmpeg:{camera_url}#video={codec}#hardware={engine}#audio=aac#audio=opus\"\n        )\n\n    return f\"ffmpeg:{camera_url}#video={codec}#audio=aac#audio=opus\"\n\n\nclass RestreamApi:\n    \"\"\"Control go2rtc relay API.\"\"\"\n\n    def __init__(self, config: FrigateConfig) -> None:\n        self.config: FrigateConfig = config\n\n    def add_cameras(self) -> None:\n        \"\"\"Add cameras to go2rtc.\"\"\"\n        self.relays: dict[str, str] = {}\n\n        for cam_name, camera in self.config.cameras.items():\n            if not camera.restream.enabled:\n                continue\n\n            for input in camera.ffmpeg.inputs:\n                if \"restream\" in input.roles:\n                    if (\n                        input.path.startswith(\"rtsp\")\n                        and not camera.restream.force_audio\n                    ):\n                        self.relays[cam_name] = escape_special_characters(input.path)\n                    else:\n                        # go2rtc only supports rtsp for direct relay, otherwise ffmpeg is used\n                        self.relays[cam_name] = get_manual_go2rtc_stream(\n                            escape_special_characters(input.path),\n                            camera.restream.video_encoding,\n                            parse_preset_hardware_acceleration_go2rtc_engine(\n                                self.config.ffmpeg.hwaccel_args\n                            ),\n                        )\n\n        if self.config.restream.birdseye:\n            self.relays[\n                \"birdseye\"\n            ] = f\"exec:{parse_preset_hardware_acceleration_encode(self.config.ffmpeg.hwaccel_args, f'-f rawvideo -pix_fmt yuv420p -video_size {self.config.birdseye.width}x{self.config.birdseye.height} -r 10 -i {BIRDSEYE_PIPE}', '-rtsp_transport tcp -f rtsp {output}')}\"\n\n        for name, path in self.relays.items():\n            params = {\"src\": path, \"name\": name}\n            requests.put(\"http://127.0.0.1:1984/api/streams\", params=params)\n", "path": "frigate/restream.py"}], "after_files": [{"content": "\"\"\"Controls go2rtc restream.\"\"\"\n\n\nimport logging\nimport requests\n\nfrom typing import Optional\n\nfrom frigate.config import FrigateConfig, RestreamCodecEnum\nfrom frigate.const import BIRDSEYE_PIPE\nfrom frigate.ffmpeg_presets import (\n    parse_preset_hardware_acceleration_encode,\n    parse_preset_hardware_acceleration_go2rtc_engine,\n)\nfrom frigate.util import escape_special_characters\n\nlogger = logging.getLogger(__name__)\n\n\ndef get_manual_go2rtc_stream(\n    camera_url: str, codec: RestreamCodecEnum, engine: Optional[str]\n) -> str:\n    \"\"\"Get a manual stream for go2rtc.\"\"\"\n    if codec == RestreamCodecEnum.copy:\n        return f\"ffmpeg:{camera_url}#video=copy#audio=aac#audio=opus\"\n\n    if engine:\n        return (\n            f\"ffmpeg:{camera_url}#video={codec}#hardware={engine}#audio=aac#audio=opus\"\n        )\n\n    return f\"ffmpeg:{camera_url}#video={codec}#audio=aac#audio=opus\"\n\n\nclass RestreamApi:\n    \"\"\"Control go2rtc relay API.\"\"\"\n\n    def __init__(self, config: FrigateConfig) -> None:\n        self.config: FrigateConfig = config\n\n    def add_cameras(self) -> None:\n        \"\"\"Add cameras to go2rtc.\"\"\"\n        self.relays: dict[str, str] = {}\n\n        for cam_name, camera in self.config.cameras.items():\n            if not camera.restream.enabled:\n                continue\n\n            for input in camera.ffmpeg.inputs:\n                if \"restream\" in input.roles:\n                    if (\n                        input.path.startswith(\"rtsp\")\n                        and not camera.restream.force_audio\n                    ):\n                        self.relays[\n                            cam_name\n                        ] = f\"{escape_special_characters(input.path)}#backchannel=0\"\n                    else:\n                        # go2rtc only supports rtsp for direct relay, otherwise ffmpeg is used\n                        self.relays[cam_name] = get_manual_go2rtc_stream(\n                            escape_special_characters(input.path),\n                            camera.restream.video_encoding,\n                            parse_preset_hardware_acceleration_go2rtc_engine(\n                                self.config.ffmpeg.hwaccel_args\n                            ),\n                        )\n\n        if self.config.restream.birdseye:\n            self.relays[\n                \"birdseye\"\n            ] = f\"exec:{parse_preset_hardware_acceleration_encode(self.config.ffmpeg.hwaccel_args, f'-f rawvideo -pix_fmt yuv420p -video_size {self.config.birdseye.width}x{self.config.birdseye.height} -r 10 -i {BIRDSEYE_PIPE}', '-rtsp_transport tcp -f rtsp {output}')}\"\n\n        for name, path in self.relays.items():\n            params = {\"src\": path, \"name\": name}\n            requests.put(\"http://127.0.0.1:1984/api/streams\", params=params)\n", "path": "frigate/restream.py"}]}