mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 17:55:21 +03:00
Avoid creating go2rtc config multiple times
This commit is contained in:
parent
2d0b069b96
commit
46a9d47923
@ -207,6 +207,10 @@ FROM deps AS devcontainer
|
|||||||
# But start a fake service for simulating the logs
|
# But start a fake service for simulating the logs
|
||||||
COPY docker/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run
|
COPY docker/fake_frigate_run /etc/s6-overlay/s6-rc.d/frigate/run
|
||||||
|
|
||||||
|
# Create symbolic link to the frigate source code, as go2rtc's create_config.sh uses it
|
||||||
|
RUN mkdir -p /opt/frigate \
|
||||||
|
&& ln -svf /workspace/frigate/frigate /opt/frigate/frigate
|
||||||
|
|
||||||
# Install Node 16
|
# Install Node 16
|
||||||
RUN apt-get update \
|
RUN apt-get update \
|
||||||
&& apt-get install wget -y \
|
&& apt-get install wget -y \
|
||||||
|
|||||||
@ -41,17 +41,19 @@ function get_ip_and_port_from_supervisor() {
|
|||||||
export FRIGATE_GO2RTC_WEBRTC_CANDIDATE_INTERNAL="${ip_address}:${webrtc_port}"
|
export FRIGATE_GO2RTC_WEBRTC_CANDIDATE_INTERNAL="${ip_address}:${webrtc_port}"
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "[INFO] Preparing go2rtc config..." >&2
|
if [[ ! -f "/dev/shm/go2rtc.yaml" ]]; then
|
||||||
|
echo "[INFO] Preparing go2rtc config..." >&2
|
||||||
|
|
||||||
if [[ -n "${SUPERVISOR_TOKEN:-}" ]]; then
|
if [[ -n "${SUPERVISOR_TOKEN:-}" ]]; then
|
||||||
# Running as a Home Assistant add-on, infer the IP address and port
|
# Running as a Home Assistant add-on, infer the IP address and port
|
||||||
get_ip_and_port_from_supervisor
|
get_ip_and_port_from_supervisor
|
||||||
|
fi
|
||||||
|
|
||||||
|
python3 /usr/local/go2rtc/create_config.py
|
||||||
fi
|
fi
|
||||||
|
|
||||||
raw_config=$(python3 /usr/local/go2rtc/create_config.py)
|
|
||||||
|
|
||||||
echo "[INFO] Starting go2rtc..." >&2
|
echo "[INFO] Starting go2rtc..." >&2
|
||||||
|
|
||||||
# Replace the bash process with the go2rtc process, redirecting stderr to stdout
|
# Replace the bash process with the go2rtc process, redirecting stderr to stdout
|
||||||
exec 2>&1
|
exec 2>&1
|
||||||
exec go2rtc -config="${raw_config}"
|
exec go2rtc -config=/dev/shm/go2rtc.yaml
|
||||||
|
|||||||
@ -8,6 +8,7 @@ import yaml
|
|||||||
sys.path.insert(0, "/opt/frigate")
|
sys.path.insert(0, "/opt/frigate")
|
||||||
from frigate.const import BIRDSEYE_PIPE, BTBN_PATH
|
from frigate.const import BIRDSEYE_PIPE, BTBN_PATH
|
||||||
from frigate.ffmpeg_presets import parse_preset_hardware_acceleration_encode
|
from frigate.ffmpeg_presets import parse_preset_hardware_acceleration_encode
|
||||||
|
|
||||||
sys.path.remove("/opt/frigate")
|
sys.path.remove("/opt/frigate")
|
||||||
|
|
||||||
|
|
||||||
@ -95,5 +96,6 @@ if config.get("birdseye", {}).get("restream", False):
|
|||||||
else:
|
else:
|
||||||
go2rtc_config["streams"] = {"birdseye": ffmpeg_cmd}
|
go2rtc_config["streams"] = {"birdseye": ffmpeg_cmd}
|
||||||
|
|
||||||
|
# Write go2rtc_config to /dev/shm/go2rtc.yaml
|
||||||
print(json.dumps(go2rtc_config))
|
with open("/dev/shm/go2rtc.yaml", "w") as f:
|
||||||
|
yaml.dump(go2rtc_config, f)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user