From 799c815bd682480344795c401186647939b32648 Mon Sep 17 00:00:00 2001
From: Janne Mareike Koschinski <mail@justjanne.de>
Date: Thu, 23 Jan 2025 22:19:50 +0100
Subject: [PATCH] Configure dedicated GPU for recording/streaming

---
 scripts/recording-sink.sh                 | 17 ++++++++++++++---
 scripts/streaming-sink.sh                 |  6 +++---
 services/voctomix2-recording-sink.service |  1 +
 services/voctomix2-streaming-sink.service |  1 +
 4 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/scripts/recording-sink.sh b/scripts/recording-sink.sh
index a46bf26..1b07b5a 100755
--- a/scripts/recording-sink.sh
+++ b/scripts/recording-sink.sh
@@ -1,12 +1,23 @@
 #!/bin/sh
-set
 
 echo "[INFO] Recording to /storage/capture/${EVENT}/${ROOM} started…"
 
+mkdir -p "/storage/capture/${EVENT}"
+
 ffmpeg -y -nostdin -hide_banner -re \
+    -init_hw_device vaapi=vaapi0:/dev/dri/renderD129 \
+    -hwaccel vaapi \
+    -hwaccel_output_format vaapi \
     -thread_queue_size 512 -i tcp://localhost:11000?timeout=3000000 \
-    -map 0:v -c:v:0 mpeg2video -pix_fmt:v:0 yuv420p -qscale:v:0 4 -qmin:v:0 4 -qmax:v:0 4 -keyint_min:v:0 5 -bf:v:0 0 -g:v:0 5 -me_method:v:0 dia -metadata:s:v:0 title="HD" \
-    -map 0:a:0 -c:a s302m -metadata:s:a:0 title="Native" \
+    -filter_hw_device vaapi0 \
+    -filter_complex "[0:v]format=nv12,hwupload[hd];" \
+    -c:v h264_vaapi \
+    -flags +cgop -aspect 16:9 \
+    -r:v:0 60 -g:v:0 180 \
+    -map "[hd]" \
+    -metadata:s:v:0 title="HD" \
+    -map "0:a:0" -metadata:s:a:0 title="native" \
+    -c:a s302m \
     -strict -2 \
     -flags +global_header \
     -f segment \
diff --git a/scripts/streaming-sink.sh b/scripts/streaming-sink.sh
index b36008b..6567741 100755
--- a/scripts/streaming-sink.sh
+++ b/scripts/streaming-sink.sh
@@ -15,15 +15,15 @@ else
 fi
 
 ffmpeg -y -nostdin -hide_banner -re \
-    -init_hw_device vaapi=vaapi0:/dev/dri/renderD128 \
+    -init_hw_device vaapi=vaapi0:/dev/dri/renderD129 \
     -hwaccel vaapi \
     -hwaccel_output_format vaapi \
     -thread_queue_size 512 -i tcp://localhost:15000?timeout=3000000 \
     -filter_hw_device vaapi0 \
-    -filter_complex "[0:v]hqdn3d,format=nv12,hwupload[hd];" \
+    -filter_complex "[0:v]format=nv12,hwupload[hd];" \
     -c:v h264_vaapi \
     -flags +cgop -aspect 16:9 \
-    -r:v:0 30 -g:v:0 90 -crf:v:0 21 -maxrate:v:0 6M -bufsize:v:0 24M \
+    -r:v:0 30 -g:v:0 60 -b:v 6M -maxrate:v:0 8M \
     -c:a aac -b:a 192k -ar 48000 \
     -map "[hd]" \
     -metadata:s:v:0 title="HD" \
diff --git a/services/voctomix2-recording-sink.service b/services/voctomix2-recording-sink.service
index a727de2..e916dcc 100644
--- a/services/voctomix2-recording-sink.service
+++ b/services/voctomix2-recording-sink.service
@@ -15,3 +15,4 @@ StartLimitInterval=0
 
 [Install]
 WantedBy=voctomix2-voctocore.service
+
diff --git a/services/voctomix2-streaming-sink.service b/services/voctomix2-streaming-sink.service
index 0302b48..7dc0331 100644
--- a/services/voctomix2-streaming-sink.service
+++ b/services/voctomix2-streaming-sink.service
@@ -15,3 +15,4 @@ StartLimitInterval=0
 
 [Install]
 WantedBy=voctomix2-voctocore.service
+
-- 
GitLab