diff --git a/system/machines/server/modules/frigate/default.nix b/system/machines/server/modules/frigate/default.nix index e0a5e6b..cf9a70f 100644 --- a/system/machines/server/modules/frigate/default.nix +++ b/system/machines/server/modules/frigate/default.nix @@ -13,32 +13,13 @@ in }; config = mkIf cfg.enable { - # Standalone go2rtc service (commented out - using Frigate's built-in go2rtc) - # services.go2rtc = { - # enable = true; - # settings = { - # rtsp.listen = ":8554"; - # webrtc.listen = ":8555"; - # streams = { - # #doorbell = "rtsp://admin:ocu%3Fu3Su@192.168.1.167/cam/realmonitor?channel=1&subtype=0"; - # living_room = "rtsp://admin:ocu%3Fu3Su@192.168.1.147/cam/realmonitor?channel=1&subtype=0"; - # kitchen = "rtsp://admin:ocu%3Fu3Su@192.168.1.147/cam/realmonitor?channel=2&subtype=0"; - # parking_lot = "rtsp://admin:ocu%3Fu3Su@192.168.1.194/cam/realmonitor?channel=1&subtype=0"; - # parking_lot_sub = "rtsp://admin:ocu%3Fu3Su@192.168.1.194/cam/realmonitor?channel=1&subtype=1"; - # #porch = "rtsp://admin:ocu%3Fu3Su@192.168.0.43/cam/realmonitor?channel=1&subtype=0"; - # }; - # }; - # }; - - services.frigate = { + # go2rtc service (required - NixOS frigate doesn't bundle it) + services.go2rtc = { enable = true; - hostname = "frigate.${domain}"; - vaapiDriver = "i965"; # Haswell iGPU for H.264 decode settings = { - mqtt.enabled = false; - - # go2rtc streams (managed by Frigate) - go2rtc.streams = { + rtsp.listen = ":8554"; + webrtc.listen = ":8555"; + streams = { #doorbell = "rtsp://admin:ocu%3Fu3Su@192.168.1.167/cam/realmonitor?channel=1&subtype=0"; living_room = "rtsp://admin:ocu%3Fu3Su@192.168.1.147/cam/realmonitor?channel=1&subtype=0"; kitchen = "rtsp://admin:ocu%3Fu3Su@192.168.1.147/cam/realmonitor?channel=2&subtype=0"; @@ -46,6 +27,15 @@ in parking_lot_sub = "rtsp://admin:ocu%3Fu3Su@192.168.1.194/cam/realmonitor?channel=1&subtype=1"; #porch = "rtsp://admin:ocu%3Fu3Su@192.168.0.43/cam/realmonitor?channel=1&subtype=0"; }; + }; + }; + + services.frigate = { + enable = true; + hostname = "frigate.${domain}"; + vaapiDriver = "i965"; # Haswell iGPU for H.264 decode + settings = { + mqtt.enabled = false; ffmpeg = { hwaccel_args = "preset-vaapi"; # VAAPI for H.264 substream detection @@ -102,6 +92,11 @@ in roles = [ "detect" ]; } ]; + # Live view stream selector (dropdown in UI) + live.streams = { + "HD (HEVC)" = "parking_lot"; + "SD (H.264)" = "parking_lot_sub"; + }; }; porch = { enabled = false;