From 78d1002cbbeaac86484efadc336482c884aeec3b Mon Sep 17 00:00:00 2001 From: Mel Date: Thu, 17 Apr 2025 22:51:04 +0200 Subject: Stream fourmi printer webcam to WebRTC Signed-off-by: Mel --- modules/go2rtc.nix | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 modules/go2rtc.nix (limited to 'modules/go2rtc.nix') diff --git a/modules/go2rtc.nix b/modules/go2rtc.nix new file mode 100644 index 0000000..7ee7ae3 --- /dev/null +++ b/modules/go2rtc.nix @@ -0,0 +1,36 @@ +{ me, ... }: + +let + ffmpegDevice = + device: format: resolution: hz: + "ffmpeg:device?video=${device}&input_format=${format}&video_size=${resolution}&framerate=${hz}#video=h264#hardware"; + + go2rtcPort = 1984; + webrtcPort = 8555; +in +{ + services.go2rtc = { + enable = true; + + settings = { + api = { + listen = "${me.tailscale.ip}:${toString go2rtcPort}"; + base_path = "/webcam"; + origin = "*"; # stop cors annoyance! + }; + + webrtc = + let + address = "${me.tailscale.ip}:${toString webrtcPort}"; + in + { + listen = address; + candidates = [ address ]; + }; + + streams = { + webcam = ffmpegDevice "/dev/video0" "yuyv422" "1280x720" "30"; + }; + }; + }; +} -- cgit 1.4.1