stream-recorder
Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate
## Funktionen
- **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)
- **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)
## 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
# Scheduler installieren (optional)
sudo install/install.sh
# Ersten Job erstellen
./stream-recorder.sh create
# Oder direkt loslegen
./stream-recorder.sh quick
```
## Befehle
```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
```
## 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
```
© Patrick Asmus · Techniverse Network · Lizenz