Files
decap-stream/CHANGELOG.md
T
Kralot 4918fa091e 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;

---
2026-04-27 23:44:02 -03:00

1.6 KiB

Changelog

Decap Stream v1.0.0

Turn any web page into an RTMP/HLS stream. Chromium renders the page in a virtual display, ffmpeg captures it, and MediaMTX publishes it, all managed through a web UI.

What's included

  • Dashboard with live thumbnails and drag-and-drop ordering
  • Per-stream configuration — resolution, scale, FPS, bitrate, x264 preset/tune, GPU flag
  • Scalable card sizes — mini / sm / md / lg with proportional scaling across all elements
  • Inline VNC — inspect any stream's virtual display without leaving the UI
  • Autologin with CDP detection — skips login if the session is still alive on container restart
  • Built-in HLS player — with controls; static standalone page optimized for TV browsers (/player/<id>.html)
  • Pure mode — global toggle in Settings to open streams as a raw .m3u8 link or a zero-dependency .html page, usable in VLC or any HLS-capable player
  • Open in new tab — global toggle in Settings to open any action button in a new tab; saved in the browser
  • Optional UI authentication — set AUTH_USER + AUTH_PASS to password-protect the entire UI
  • Persistent desired state — streams restore automatically on container restart

Quick start

services:
  decap-stream:
    image: ghcr.io/riguettodev/decap-stream:latest
    restart: unless-stopped
    shm_size: "2gb"
    security_opt:
      - seccomp:unconfined
    ports:
      - "3000:3000"
      - "127.0.0.1:6080:6080"
    volumes:
      - streams:/app/data/streams

volumes:
  streams:
docker compose up -d

See the README for the full configuration reference.