Files
2026-09-07 13:44:25 +02:00

119 lines
4.0 KiB
Markdown

<p align="center">
<a href="https://techniverse.net">
<img src="https://assets.techniverse.net/f1/git/graphics/repo-techniverse-logo.png" alt="Techniverse Community" height="70" />
</a>
</p>
<h1 align="center">stream-recorder</h1>
<h4 align="center">
Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate
</h4>
<h6 align="center">
<a href="https://www.cleveradmin.de">🏰 Website</a>
·
<a href="https://techniverse.net">📰 Community</a>
·
<a href="https://social.techniverse.net/@donnerwolke">🐘 Mastodon</a>
·
<a href="https://matrix.to/#/#support:techniverse.net">💬 Support</a>
</h6>
<br>
## 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
```
<br><br>
<p align="center">
<img src="https://assets.techniverse.net/f1/git/graphics/gray0-catonline.svg" alt="">
</p>
<p align="center">
<sub>
© Patrick Asmus · Techniverse Network · <a href="./LICENSE">Lizenz</a>
</sub>
</p>