erster docker release
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<h1 align="center">stream-recorder</h1>
|
||||
|
||||
<h4 align="center">
|
||||
Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate
|
||||
Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate — mit Web-UI und Docker
|
||||
</h4>
|
||||
|
||||
<h6 align="center">
|
||||
@@ -23,88 +23,73 @@
|
||||
|
||||
## 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
|
||||
- **Job-basiert** — Ein Stream = eine Job-Datei, inklusive Zeitplanung
|
||||
- **Segment-Splitting** — Lange Aufnahmen automatisch in Teile zerlegen (z.B. stündlich)
|
||||
- **Plik-Upload** — Aufnahmen und Segmente automatisch auf Plik hochladen
|
||||
- **Zeitplanung** — Aufnahmezeiten direkt in der Job-Datei konfigurieren (kein Cron nötig)
|
||||
- **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
|
||||
- **Live-Status** — Laufende Aufnahmen mit Laufzeit, Dateigröße und Segment-Anzahl anzeigen
|
||||
- **NTFY-Benachrichtigungen** — Push-Nachrichten bei Start, Stop, Fehler und Upload
|
||||
- **Schnellaufnahme** — Interaktiver Modus für spontane Aufnahmen
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- **Linux** (getestet unter Ubuntu/Debian)
|
||||
- **Bash** 4.0+
|
||||
- **ffmpeg** (`sudo apt install ffmpeg`)
|
||||
- **curl** (optional, für NTFY und Plik)
|
||||
- **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
|
||||
# Klonen und einrichten
|
||||
git clone https://git.techniverse.net/scriptos/stream-recorder.git /opt/stream-recorder
|
||||
cd /opt/stream-recorder
|
||||
cp config/stream-recorder.conf.dist config/stream-recorder.conf
|
||||
nano config/stream-recorder.conf
|
||||
# Repository klonen
|
||||
git clone https://git.techniverse.net/scriptos/stream-recorder.git
|
||||
cd stream-recorder
|
||||
|
||||
# Scheduler installieren (optional)
|
||||
sudo install/install.sh
|
||||
|
||||
# Ersten Job erstellen
|
||||
./stream-recorder.sh create
|
||||
|
||||
# Oder direkt loslegen
|
||||
./stream-recorder.sh quick
|
||||
# Container starten
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
## Befehle
|
||||
Das Web-UI ist unter `http://localhost:8484` erreichbar. Die Konfiguration wird beim ersten Start automatisch in `data/config.yml` erstellt.
|
||||
|
||||
## Docker Compose
|
||||
|
||||
```yaml
|
||||
services:
|
||||
stream-recorder:
|
||||
image: 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
|
||||
./stream-recorder.sh record [job] # Aufnahme starten (ohne Angabe: Auswahl)
|
||||
./stream-recorder.sh stop [job] # Aufnahme stoppen (ohne Angabe: Auswahl)
|
||||
./stream-recorder.sh status # Laufende Aufnahmen anzeigen
|
||||
./stream-recorder.sh list # Alle Jobs anzeigen
|
||||
./stream-recorder.sh create # Neuen Job erstellen
|
||||
./stream-recorder.sh quick # Schnellaufnahme
|
||||
./stream-recorder.sh logs # Logs live verfolgen
|
||||
docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t stream-recorder:latest .
|
||||
```
|
||||
|
||||
## Dokumentation
|
||||
|
||||
| Thema | Beschreibung |
|
||||
|-------|-------------|
|
||||
| [Installation](docs/installation.md) | Installation, Updates, Deinstallation |
|
||||
| [Konfiguration](docs/konfiguration.md) | Alle Konfigurationsparameter |
|
||||
| [Job-Dateien](docs/jobs.md) | Jobs erstellen und verwalten |
|
||||
| [Zeitplanung](docs/zeitplanung.md) | Automatische Aufnahmezeiten |
|
||||
| [Segment-Splitting](docs/segment-splitting.md) | Aufnahmen in Teile zerlegen |
|
||||
| [Plik-Upload](docs/plik-upload.md) | Automatischer Upload auf Plik |
|
||||
| [Benachrichtigungen](docs/benachrichtigungen.md) | NTFY Push-Nachrichten |
|
||||
| [Befehle](docs/befehle.md) | Alle Befehle im Detail |
|
||||
| [Beispiele](docs/beispiele.md) | Praxisbeispiele und Workflows |
|
||||
|
||||
## Verzeichnisstruktur
|
||||
|
||||
```
|
||||
stream-recorder/
|
||||
├── stream-recorder.sh # Hauptscript
|
||||
├── config/
|
||||
│ └── stream-recorder.conf.dist # Konfigurations-Vorlage
|
||||
├── jobs/ # Job-Definitionen
|
||||
│ └── templates/ # Vorlagen
|
||||
│ ├── example-rtmp.job.dist
|
||||
│ ├── example-hls.job.dist
|
||||
│ └── example-mp3.job.dist
|
||||
├── docs/ # Dokumentation
|
||||
├── install/
|
||||
│ ├── install.sh # Scheduler installieren
|
||||
│ └── uninstall.sh # Scheduler deinstallieren
|
||||
├── README.md
|
||||
└── LICENSE
|
||||
```
|
||||
|
||||
| [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 |
|
||||
|
||||
<br><br>
|
||||
<p align="center">
|
||||
|
||||
Reference in New Issue
Block a user