Adiciona suporte a encoders de hardware (NVENC, VAAPI, QSV) no ffmpeg

---

- Implementada função buildEncoderFlags() em supervisor.ts e reprovision.mjs que gera o bloco de flags do ffmpeg conforme a env var FFMPEG_HWACCEL (nvenc, vaapi, qsv ou vazio para libx264);
- Template stream.template.conf refatorado para usar {{ENCODER_FLAGS}} no lugar do bloco x264 fixo;
- NVENC configurado com perfil high, mapeamento de presets x264→p1-p7 e tune zerolatency→ll;
- docker-compose.yml atualizado com seções comentadas para gpus, devices, FFMPEG_HWACCEL e instrução de volume WSL2 para libnvidia-encode;
- Dockerfile adiciona mesa-va-drivers e intel-media-va-driver para suporte a VAAPI e remove declaração VOLUME redundante;
- fetchAllStatuses() corrigido: supervisorctl status || true evita exceção com exit code 3 quando há processos parados;
- reprovision.mjs atualizado para incluir AUTO_RELOAD e AUTO_RELOAD_INTERVAL no contexto de renderização do template;

---
This commit is contained in:
2026-04-27 23:44:02 -03:00
parent 14094cf5ed
commit 4918fa091e
7 changed files with 164 additions and 39 deletions
+1 -12
View File
@@ -73,18 +73,7 @@ command=bash -c "sleep {{STREAM_DELAY}} && ffmpeg \
-i {{DISPLAY}} \
-f lavfi -i anullsrc=channel_layout=stereo:sample_rate=44100 \
-shortest \
-c:v libx264 \
-preset {{PRESET}} \
-tune {{TUNE}} \
-profile:v baseline \
-level 3.1 \
-pix_fmt yuv420p \
-g {{GOP}} \
-keyint_min {{GOP}} \
-sc_threshold 0 \
-b:v {{BITRATE}} \
-maxrate {{BITRATE}} \
-bufsize {{BUFSIZE}} \
{{ENCODER_FLAGS}}
-c:a aac \
-b:a 128k \
-ar 44100 \