Techniverse Community

stream-recorder

Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate — mit Web-UI und Docker

🏰 Website · 📰 Community · 🐘 Mastodon · 💬 Support

## Funktionen - **Web-Interface** — Jobs planen, Aufnahmen steuern und verlängern im Browser - **Docker-basiert** — Ein Container, läuft auf ARM und x86/x64 - **Mehrere Stream-Typen** — RTMP, RTMPS, HLS (m3u8), MP3, AAC, OGG, FLAC und HTTP-Streams - **Aufnahmen verlängern** — Laufende Aufnahmen spontan verlängern oder auf unbegrenzt setzen - **Zeitplanung** — Automatische Aufnahmezeiten direkt im Web-UI konfigurieren - **Segment-Splitting** — Lange Aufnahmen automatisch in Teile zerlegen - **Auto-Reconnect** — Automatische Wiederverbindung bei Verbindungsabbrüchen - **Schnellaufnahme** — URL eingeben, sofort aufnehmen - **NTFY-Benachrichtigungen** — Push-Nachrichten bei Start, Stop, Fehler und Upload (pro Job schaltbar) - **Plik-Upload** — Aufnahmen automatisch hochladen, optional danach löschen (pro Job schaltbar) - **Metadata-Monitor** — Automatische Show-Erkennung via Stream-Metadaten (Plugin) - **REST-API** — Alle Funktionen auch per API steuerbar ## Schnellstart ```bash # Repository klonen git clone https://git.techniverse.net/scriptos/stream-recorder.git cd stream-recorder # Container starten docker compose up -d ``` Das Web-UI ist unter `http://localhost:8484` erreichbar. Die Konfiguration wird beim ersten Start automatisch in `data/config.yml` erstellt. ## Container Image Release-Images werden automatisch in der Gitea Container Registry veröffentlicht: ```bash docker pull git.techniverse.net/scriptos/stream-recorder:latest docker pull git.techniverse.net/scriptos/stream-recorder:v3.0.0 docker pull git.techniverse.net/scriptos/stream-recorder:3.0.0 ``` Dev-Images entstehen bei Pushes auf `main` oder `dev`: ```bash docker pull git.techniverse.net/scriptos/stream-recorder:dev-latest ``` ## Docker Compose ```yaml services: stream-recorder: image: git.techniverse.net/scriptos/stream-recorder:latest container_name: stream-recorder restart: unless-stopped ports: - "8484:8484" volumes: - ./data:/app/data environment: TZ: Europe/Berlin ``` ## Daten Alle persistenten Daten liegen in einem einzigen Volume (`./data`): | Pfad | Beschreibung | |------|-------------| | `data/config.yml` | Konfiguration (wird beim ersten Start automatisch erstellt) | | `data/stream-recorder.db` | SQLite-Datenbank | | `data/recordings/` | Aufnahmen (pro Job ein Unterordner) | ## Multi-Arch Build ```bash docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t stream-recorder:latest . ``` ## Dokumentation | Thema | Beschreibung | |-------|-------------| | [Jobs](docs/jobs.md) | Jobs erstellen, Zeitplanung, Schnellaufnahme | | [Aufnahmen](docs/aufnahmen.md) | Verlängern, Stoppen, Reconnect, Segment-Splitting | | [Plugins](docs/plugins.md) | NTFY, Plik-Upload, Metadata-Monitor | | [Konfiguration](docs/konfiguration.md) | config.yml, alle Parameter | | [API](docs/api.md) | REST-API Endpunkte |

© Patrick Asmus · Techniverse Network · Lizenz