119 lines
4.0 KiB
Markdown
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>
|