Release: v2.3.0

This commit is contained in:
Patrick Asmus
2026-09-06 13:46:50 +02:00
parent b5930459f1
commit 808d34a244
8 changed files with 1766 additions and 8 deletions
+347 -8
View File
@@ -1,12 +1,351 @@
# RTMP Stream Recorder für die Bash <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>
Dies Skript ermöglicht die lokale Aufzeichnung von RTMP-Streams und speichert diese als *.mp4-Dateien ab. Das Skript überprüft zunächst, ob das Programm "ffmpeg" installiert ist und installiert es gegebenenfalls. Es erstellt dann ein Downloadverzeichnis und bietet dem Benutzer die Möglichkeit, zwischen verschiedenen Streams auszuwählen. Bei Auswahl eines Streams wird die Aufzeichnung gestartet und im Downloadverzeichnis gespeichert. Das Skript enthält auch eine Funktion zum Abbrechen der Aufzeichnung und bietet die Option, die zuletzt erstellte Datei zu löschen. <h1 align="center">stream-recorder</h1>
Das Skript bietet die folgenden Funktionen: <h4 align="center">
Generischer Stream-Recorder für RTMP, HLS, HTTP-Audio und weitere Formate
</h4>
- Auswahl Streams (oder Eingabe einer benutzerdefinierten Stream-URL und Stream-Namen) <h6 align="center">
- Aufzeichnung des ausgewählten Streams und Speicherung im angegebenen Downloadverzeichnis <a href="https://www.cleveradmin.de">🏰 Website</a>
- Überprüfung und Installation von "ffmpeg", wenn es nicht vorhanden ist ·
- Abbruch der Aufzeichnung per Interrupt (INT-Signal) mit der Möglichkeit, die zuletzt erstellte Datei zu löschen <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><br>
Aufruf: ./bash erde-stream-recorder.sh ## Beschreibung
**stream-recorder** ist ein Bash-basiertes Tool zur automatisierten Aufzeichnung von Streams. Es unterstützt verschiedene Stream-Typen und kann sowohl interaktiv als auch vollautomatisch genutzt werden.
Jeder Stream wird als eigene Job-Datei definiert. Aufnahmezeiten werden direkt in der Job-Datei festgelegt - kein Cron-Wissen nötig. Ein systemd-Timer übernimmt die Zeitsteuerung automatisch.
## Funktionen
- **Mehrere Stream-Typen:** RTMP, RTMPS, HLS (m3u8), MP3, AAC, OGG, FLAC und generische HTTP-Streams
- **Job-basiert:** Ein Stream = eine Job-Datei, inklusive Zeitplanung
- **Automatische Zeitplanung:** Aufnahmezeiten direkt in der Job-Datei konfigurieren
- **Schnellaufnahme:** Interaktiver Modus für spontane Aufnahmen (`quick`)
- **Automatische Erkennung:** Stream-Typ und Dateiformat werden anhand der URL erkannt
- **Auto-Reconnect:** Automatische Wiederverbindung bei Verbindungsabbrüchen
- **NTFY-Benachrichtigungen:** Optionale Push-Nachrichten bei Start, Stop und Fehlern
- **Logging:** Strukturiertes Logging mit konfigurierbarem Log-Level und Live-Ansicht
- **Prozessverwaltung:** Start, Stop und Status einzelner oder aller Aufnahmen
- **Einfache Installation:** Install/Uninstall-Scripts für den systemd-Service
## Voraussetzungen
- **Betriebssystem:** Linux (getestet unter Ubuntu/Debian)
- **Bash:** Version 4.0 oder neuer
- **ffmpeg:** Muss installiert sein (`sudo apt install ffmpeg`)
- **curl:** Optional, nur für NTFY-Benachrichtigungen (`sudo apt install curl`)
## Installation
```bash
# Repository klonen
git clone https://git.techniverse.net/scriptos/stream-recorder.git /opt/stream-recorder
cd /opt/stream-recorder
# Konfiguration anpassen
nano config/stream-recorder.conf
# Scheduler installieren (systemd-Timer)
sudo install/install.sh
```
Das Install-Script macht das Hauptscript ausführbar, installiert fehlende Abhängigkeiten (ffmpeg) und richtet den systemd-Timer ein, der jede Minute die Zeitpläne prüft.
### Deinstallation
```bash
sudo install/uninstall.sh
```
Entfernt den systemd-Timer. Job-Dateien, Konfiguration und Aufnahmen bleiben erhalten.
## Konfiguration
Die Konfigurationsdatei liegt unter `config/stream-recorder.conf`:
| Parameter | Standard | Beschreibung |
|-----------------|------------------------------|---------------------------------------|
| `DOWNLOAD_PATH` | `/home/downloads/recordings` | Basis-Verzeichnis für Aufnahmen |
| `LOG_DIR` | `/var/log/stream-recorder` | Log-Verzeichnis |
| `LOG_LEVEL` | `INFO` | Log-Level: DEBUG, INFO, WARN, ERROR |
| `PID_DIR` | `/tmp/stream-recorder` | PID-Dateien für laufende Aufnahmen |
| `MAX_RETRIES` | `0` | Wiederholungsversuche (0 = unbegrenzt)|
| `RETRY_DELAY` | `5` | Wartezeit zwischen Versuchen (Sek.) |
| `NTFY_URL` | (leer) | NTFY Server-URL inkl. Topic |
| `NTFY_TOKEN` | (leer) | NTFY Access-Token (optional) |
| `NTFY_EVENTS` | `error` | Benachrichtigungs-Events (s. unten) |
| `PLIK_URL` | (leer) | Plik Server-URL |
| `PLIK_API_KEY` | (leer) | Plik API-Key (optional) |
| `PLIK_TTL` | `30d` | Gültigkeitsdauer der Uploads |
## Job-Dateien
Jeder Stream wird durch eine `.job`-Datei im `jobs/`-Verzeichnis definiert. Vorlagen befinden sich unter `jobs/templates/`.
### Job erstellen
**Interaktiv (empfohlen):**
```bash
./stream-recorder.sh create
```
Das Script fragt Schritt für Schritt nach URL, Name, Typ, Dauer, Zeitplan und Plik-Upload und erstellt die Job-Datei automatisch.
**Manuell (aus Vorlage):**
```bash
# Vorlage kopieren
cp jobs/templates/example-rtmp.job.dist jobs/mein-stream.job
# Anpassen
nano jobs/mein-stream.job
```
### Stream-Parameter
| Parameter | Pflicht | Beschreibung |
|--------------------|---------|-----------------------------------------------------|
| `STREAM_NAME` | Ja | Name des Streams (wird für Dateinamen verwendet) |
| `STREAM_URL` | Ja | URL des Streams |
| `STREAM_TYPE` | Nein | `auto`, `rtmp`, `hls`, `mp3`, `aac`, `ogg`, `flac` |
| `OUTPUT_FORMAT` | Nein | Dateiendung (z.B. `mp4`, `mp3`) - sonst automatisch |
| `MAX_DURATION` | Nein | Maximale Dauer in Sekunden (leer = unbegrenzt) |
| `EXTRA_FFMPEG_ARGS`| Nein | Zusätzliche ffmpeg-Parameter |
| `PLIK_ENABLED` | Nein | Plik-Upload aktivieren (`true`/`false`) |
### Zeitplan-Parameter
| Parameter | Standard | Beschreibung |
|--------------------|----------|-------------------------------------------------|
| `SCHEDULE_ENABLED` | `false` | Zeitplan aktivieren (`true`/`false`) |
| `SCHEDULE_DAYS` | `*` | Aufnahmetage (siehe Formate unten) |
| `SCHEDULE_START` | (leer) | Startzeit im Format `HH:MM` |
| `SCHEDULE_STOP` | (leer) | Endzeit im Format `HH:MM` (leer = kein Auto-Stop)|
**Tage-Formate:**
| Format | Bedeutung |
|--------------|----------------------------|
| `*` | Täglich |
| `Mo-Fr` | Montag bis Freitag |
| `Sa,So` | Samstag und Sonntag |
| `Mo,Mi,Fr` | Einzelne Tage |
| `Mo-Fr,So` | Kombiniert |
Die Tagesangaben funktionieren auf Deutsch (Mo, Di, Mi, Do, Fr, Sa, So) und Englisch (Mon, Tue, Wed, Thu, Fri, Sat, Sun).
### Beispiel: Tägliche RTMP-Aufnahme von 20:00 bis 22:00
```bash
STREAM_NAME="Abend-Livestream"
STREAM_URL="rtmp://example.com/live/stream-key"
SCHEDULE_ENABLED=true
SCHEDULE_DAYS="*"
SCHEDULE_START="20:00"
SCHEDULE_STOP="22:00"
```
### Beispiel: Radio-Mitschnitt werktags um 18:00, 1 Stunde
```bash
STREAM_NAME="Mein-Radiosender"
STREAM_URL="https://example.com/stream.mp3"
MAX_DURATION="3600"
SCHEDULE_ENABLED=true
SCHEDULE_DAYS="Mo-Fr"
SCHEDULE_START="18:00"
```
## Verwendung
### Befehle
```bash
# Einzelnen Stream aufzeichnen
./stream-recorder.sh record mein-stream
# Alle Jobs gleichzeitig aufzeichnen
./stream-recorder.sh record-all
# Neuen Job interaktiv erstellen
./stream-recorder.sh create
# Interaktive Schnellaufnahme (URL direkt eingeben)
./stream-recorder.sh quick
# Aufnahme mit ausführlicher Ausgabe
./stream-recorder.sh -V record mein-stream
# Verfügbare Jobs und Zeitpläne anzeigen
./stream-recorder.sh list
# Laufende Aufnahmen und Scheduler-Status anzeigen
./stream-recorder.sh status
# Log-Ausgabe live verfolgen
./stream-recorder.sh logs
# Einzelne Aufnahme stoppen
./stream-recorder.sh stop mein-stream
# Alle Aufnahmen stoppen
./stream-recorder.sh stop-all
```
### Schnellaufnahme
Mit dem `quick`-Befehl kann ein beliebiger Stream ohne Job-Datei aufgezeichnet werden:
```bash
./stream-recorder.sh quick
```
Das Script fragt interaktiv nach URL, Name, Typ und Dauer. Die Dauer kann in verschiedenen Formaten angegeben werden: `3600` (Sekunden), `1h`, `30m`, `1h30m`.
### Job-Angabe
Der `record`-Befehl akzeptiert verschiedene Formate:
```bash
./stream-recorder.sh record jobs/mein-stream.job # Vollständiger Pfad
./stream-recorder.sh record mein-stream.job # Nur Dateiname
./stream-recorder.sh record mein-stream # Nur Job-Name
```
## Zeitplanung
Die Zeitplanung wird direkt in der Job-Datei konfiguriert - kein Cron nötig.
### So funktioniert's
1. **Job-Datei erstellen** und `SCHEDULE_*`-Parameter setzen
2. **Scheduler installieren** mit `sudo install/install.sh` (einmalig)
3. Der systemd-Timer prüft **jede Minute** alle Jobs und startet/stoppt Aufnahmen automatisch
### Verhalten
- **Start + Stop gesetzt:** Aufnahme läuft im angegebenen Zeitfenster
- **Nur Start gesetzt:** Aufnahme startet zur angegebenen Zeit, läuft bis `MAX_DURATION` oder manueller Stop
- **Manuell gestartete Aufnahmen** werden vom Scheduler nicht beeinflusst
- **Nach Neustart** des Servers erkennt der Scheduler automatisch, welche Aufnahmen laufen sollten
### NTFY-Benachrichtigungen
Push-Nachrichten via [ntfy](https://ntfy.sh) (selbst gehostet oder öffentlich). In der Konfigurationsdatei:
```bash
NTFY_URL="https://ntfy.sh/mein-stream-topic"
NTFY_TOKEN="" # Optional, nur bei geschützten Topics
NTFY_EVENTS="start,stop,error" # Kommasepariert: start, stop, error
```
| Event | Auslöser | Priorität |
|---------|-----------------------------------------------------|-----------|
| `start` | Aufnahme wurde gestartet | Normal |
| `stop` | Aufnahme wurde beendet (regulär oder manuell) | Normal |
| `error` | Verbindung verloren oder max. Versuche erreicht | Hoch |
| `upload` | Datei wurde auf Plik hochgeladen (mit Download-Link)| Normal |
## Auto-Reconnect
Bei Verbindungsabbrüchen versucht das Script automatisch, die Verbindung wiederherzustellen:
- `MAX_RETRIES=0` - Unbegrenzte Wiederverbindungsversuche (Standard)
- `MAX_RETRIES=5` - Maximal 5 Versuche, danach Abbruch mit NTFY-Benachrichtigung
- `RETRY_DELAY=5` - 5 Sekunden Wartezeit zwischen den Versuchen
Bei jedem Reconnect wird eine neue Datei mit aktuellem Zeitstempel erzeugt.
## Plik-Upload
Fertige Aufnahmen können automatisch auf einen [Plik](https://github.com/root-gg/plik)-Server hochgeladen werden.
### Einrichtung
1. **Plik-Server konfigurieren** in `config/stream-recorder.conf`:
```bash
PLIK_URL="https://plik.example.com"
PLIK_API_KEY="" # Optional, nur bei geschützten Servern
PLIK_TTL="30d" # Gültigkeitsdauer: 30d, 24h, oder Sekunden
```
2. **Pro Job aktivieren** in der Job-Datei:
```bash
PLIK_ENABLED=true
```
### Verhalten
- Der Upload erfolgt automatisch nach jeder regulär abgeschlossenen Aufnahme
- Bei manuellem Stop oder Verbindungsabbruch wird kein Upload ausgeführt
- Der Download-Link wird im Log ausgegeben
- Optional wird der Link per NTFY-Benachrichtigung gesendet (Event: `upload`)
### NTFY + Plik
Um den Download-Link per Push-Nachricht zu erhalten:
```bash
NTFY_EVENTS="start,stop,error,upload"
```
## Logging
Logs werden nach `LOG_DIR` geschrieben (Standard: `/var/log/stream-recorder/`):
- `stream-recorder.log` - Alle Operationen des Scripts
- `ffmpeg_<job-id>.log` - ffmpeg-Ausgabe pro Job
```bash
# Logs in Echtzeit verfolgen
./stream-recorder.sh logs
# Aufnahme mit ausführlicher Ausgabe starten
./stream-recorder.sh -V record mein-stream
```
## Verzeichnisstruktur
```
stream-recorder/
├── stream-recorder.sh # Hauptscript
├── config/
│ └── stream-recorder.conf # Konfiguration
├── jobs/ # Job-Definitionen
│ └── templates/ # Vorlagen
│ ├── example-rtmp.job.dist
│ ├── example-mp3.job.dist
│ └── example-hls.job.dist
├── 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>
+59
View File
@@ -0,0 +1,59 @@
###############################################
# stream-recorder - Konfigurationsdatei
###############################################
# Basis-Verzeichnis für Aufnahmen
# Pro Stream wird ein Unterordner angelegt
DOWNLOAD_PATH="/home/downloads/recordings"
# Log-Verzeichnis
LOG_DIR="/var/log/stream-recorder"
# Log-Level: DEBUG, INFO, WARN, ERROR
LOG_LEVEL="INFO"
# PID-Verzeichnis für laufende Aufnahmen
PID_DIR="/tmp/stream-recorder"
# Anzahl Wiederholungsversuche bei Verbindungsabbruch
# 0 = unbegrenzt (empfohlen für Langzeitaufnahmen)
MAX_RETRIES=5
# Wartezeit zwischen Wiederholungsversuchen (Sekunden)
RETRY_DELAY=5
###############################################
# NTFY-Benachrichtigungen (optional)
# https://ntfy.sh oder selbst gehostet
###############################################
# NTFY Server-URL inkl. Topic
# Beispiel: https://ntfy.sh/mein-stream-topic
# Beispiel: https://ntfy.example.com/recordings
# Leer = deaktiviert
NTFY_URL=""
# NTFY Access-Token (optional, nur bei geschützten Topics)
NTFY_TOKEN=""
# Ereignisse, bei denen benachrichtigt wird (kommasepariert)
# Möglich: start, stop, error, upload
# Beispiel: "start,stop,error,upload" für alle Ereignisse
NTFY_EVENTS="error"
###############################################
# Plik-Upload (optional)
# https://github.com/root-gg/plik
###############################################
# Plik Server-URL
# Beispiel: https://plik.example.com
# Leer = deaktiviert (kann pro Job aktiviert werden)
PLIK_URL=""
# Plik API-Key (optional, nur bei geschützten Servern)
PLIK_API_KEY=""
# Gültigkeitsdauer des Uploads
# Beispiel: 30d (30 Tage), 24h (24 Stunden), 0 (unbegrenzt)
PLIK_TTL="30d"
+93
View File
@@ -0,0 +1,93 @@
#!/bin/bash
###############################################
# stream-recorder - Installations-Script
# Richtet den systemd-Timer für die
# automatische Zeitplanung ein.
###############################################
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SERVICE_NAME="stream-recorder"
echo ""
echo "stream-recorder - Installation"
echo "=============================="
echo ""
# Root-Prüfung
if [[ $EUID -ne 0 ]]; then
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
echo " sudo $0"
exit 1
fi
# Prüfe ob systemd vorhanden
if ! command -v systemctl &>/dev/null; then
echo "FEHLER: systemd ist nicht verfügbar."
echo " Dieses Script benötigt systemd für die Zeitplanung."
exit 1
fi
# Prüfe Abhängigkeiten
if ! command -v ffmpeg &>/dev/null; then
echo "ffmpeg nicht gefunden. Installiere ffmpeg..."
apt-get update -qq && apt-get install -y -qq ffmpeg
echo "ffmpeg installiert."
fi
# Hauptscript ausführbar machen
chmod +x "${SCRIPT_DIR}/stream-recorder.sh"
echo "Installationspfad: ${SCRIPT_DIR}"
echo ""
# systemd Service erstellen
cat > "/etc/systemd/system/${SERVICE_NAME}.service" <<EOF
[Unit]
Description=stream-recorder Scheduler
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=${SCRIPT_DIR}/stream-recorder.sh scheduler
KillMode=none
StandardOutput=journal
StandardError=journal
EOF
# systemd Timer erstellen
cat > "/etc/systemd/system/${SERVICE_NAME}.timer" <<EOF
[Unit]
Description=stream-recorder Scheduler Timer
[Timer]
OnBootSec=30
OnCalendar=*-*-* *:*:00
AccuracySec=10
[Install]
WantedBy=timers.target
EOF
# systemd neu laden und Timer aktivieren
systemctl daemon-reload
systemctl enable "${SERVICE_NAME}.timer"
systemctl start "${SERVICE_NAME}.timer"
echo "Installation abgeschlossen!"
echo ""
echo "Status:"
systemctl status "${SERVICE_NAME}.timer" --no-pager 2>/dev/null || true
echo ""
echo "Der Scheduler prüft jetzt jede Minute die Job-Dateien"
echo "und startet/stoppt Aufnahmen automatisch."
echo ""
echo "Nächste Schritte:"
echo " 1. Job-Datei erstellen: cp jobs/templates/example-rtmp.job.dist jobs/mein-stream.job"
echo " 2. Job-Datei bearbeiten: nano jobs/mein-stream.job"
echo " 3. SCHEDULE_ENABLED=true setzen und Zeiten konfigurieren"
echo " 4. Jobs prüfen: ./stream-recorder.sh list"
echo ""
echo "Deinstallation: sudo install/uninstall.sh"
+61
View File
@@ -0,0 +1,61 @@
#!/bin/bash
###############################################
# stream-recorder - Deinstallations-Script
# Entfernt den systemd-Timer und stoppt
# alle laufenden Aufnahmen.
###############################################
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
SERVICE_NAME="stream-recorder"
echo ""
echo "stream-recorder - Deinstallation"
echo "================================="
echo ""
# Root-Prüfung
if [[ $EUID -ne 0 ]]; then
echo "FEHLER: Dieses Script muss als root ausgeführt werden."
echo " sudo $0"
exit 1
fi
# Timer stoppen und deaktivieren
if systemctl is-active --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
echo "Stoppe Timer..."
systemctl stop "${SERVICE_NAME}.timer"
fi
if systemctl is-enabled --quiet "${SERVICE_NAME}.timer" 2>/dev/null; then
echo "Deaktiviere Timer..."
systemctl disable "${SERVICE_NAME}.timer"
fi
# Service-Dateien entfernen
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.timer" ]]; then
rm -f "/etc/systemd/system/${SERVICE_NAME}.timer"
echo "Timer-Datei entfernt."
fi
if [[ -f "/etc/systemd/system/${SERVICE_NAME}.service" ]]; then
rm -f "/etc/systemd/system/${SERVICE_NAME}.service"
echo "Service-Datei entfernt."
fi
systemctl daemon-reload
# Laufende Aufnahmen stoppen
echo ""
read -rp "Alle laufenden Aufnahmen stoppen? [j/N] " stop_all
if [[ "$stop_all" =~ ^[Jj]$ ]]; then
"${SCRIPT_DIR}/stream-recorder.sh" stop-all 2>/dev/null || true
echo "Aufnahmen gestoppt."
fi
echo ""
echo "Deinstallation abgeschlossen."
echo ""
echo "Hinweis: Die Job-Dateien, Konfiguration und Aufnahmen"
echo " wurden NICHT entfernt."
+40
View File
@@ -0,0 +1,40 @@
###############################################
# stream-recorder - Job-Definition (HLS/m3u8)
###############################################
# Kopieren und anpassen:
# cp jobs/templates/example-hls.job.dist jobs/mein-hls-stream.job
# Name des Streams
STREAM_NAME="Mein-HLS-Stream"
# Stream-URL (m3u8-Playlist)
STREAM_URL="https://example.com/live/playlist.m3u8"
# Stream-Typ
STREAM_TYPE="hls"
# Ausgabeformat (mp4 oder mkv empfohlen)
OUTPUT_FORMAT="mp4"
# Maximale Aufnahmedauer in Sekunden
MAX_DURATION=""
# Zusätzliche ffmpeg-Argumente (optional)
EXTRA_FFMPEG_ARGS=""
###############################################
# Zeitplanung (optional)
###############################################
SCHEDULE_ENABLED=false
SCHEDULE_DAYS="*"
SCHEDULE_START="20:00"
SCHEDULE_STOP="22:00"
###############################################
# Plik-Upload (optional)
# Fertige Aufnahme automatisch auf Plik hochladen
# PLIK_URL muss in der Konfiguration gesetzt sein
###############################################
PLIK_ENABLED=false
+41
View File
@@ -0,0 +1,41 @@
###############################################
# stream-recorder - Job-Definition (MP3/Audio)
###############################################
# Kopieren und anpassen:
# cp jobs/templates/example-mp3.job.dist jobs/mein-radio.job
# Name des Streams
STREAM_NAME="Mein-Radiosender"
# Stream-URL (HTTP/HTTPS Audio-Stream)
STREAM_URL="https://example.com/stream.mp3"
# Stream-Typ: auto, rtmp, hls, mp3, aac, ogg, flac, http
STREAM_TYPE="auto"
# Ausgabeformat
OUTPUT_FORMAT=""
# Maximale Aufnahmedauer in Sekunden (leer = unbegrenzt)
# Für Radio-Mitschnitte empfohlen, z.B. 3600 für 1 Stunde
MAX_DURATION="3600"
# Zusätzliche ffmpeg-Argumente (optional)
EXTRA_FFMPEG_ARGS=""
###############################################
# Zeitplanung (optional)
###############################################
SCHEDULE_ENABLED=false
SCHEDULE_DAYS="Mo-Fr"
SCHEDULE_START="18:00"
SCHEDULE_STOP=""
###############################################
# Plik-Upload (optional)
# Fertige Aufnahme automatisch auf Plik hochladen
# PLIK_URL muss in der Konfiguration gesetzt sein
###############################################
PLIK_ENABLED=false
+57
View File
@@ -0,0 +1,57 @@
###############################################
# stream-recorder - Job-Definition (RTMP)
###############################################
# Kopieren und anpassen:
# cp jobs/templates/example-rtmp.job.dist jobs/mein-stream.job
# Name des Streams (wird für Dateinamen und Verzeichnisse verwendet)
STREAM_NAME="Mein-RTMP-Stream"
# Stream-URL
STREAM_URL="rtmp://example.com/live/stream-key"
# Stream-Typ: auto, rtmp, hls, mp3, aac, ogg, flac, http
# Bei "auto" wird der Typ anhand der URL erkannt
STREAM_TYPE="auto"
# Ausgabeformat (Dateiendung): mp4, mkv, mp3, aac, ogg, flac
# Leer lassen für automatische Erkennung basierend auf Stream-Typ
OUTPUT_FORMAT=""
# Maximale Aufnahmedauer in Sekunden (leer = unbegrenzt)
# Beispiel: 3600 = 1 Stunde, 7200 = 2 Stunden
MAX_DURATION=""
# Zusätzliche ffmpeg-Argumente (optional)
EXTRA_FFMPEG_ARGS=""
###############################################
# Zeitplanung (optional)
# Damit der Scheduler funktioniert, muss er
# installiert sein: sudo install/install.sh
###############################################
# Zeitplan aktivieren (true/false)
SCHEDULE_ENABLED=false
# Aufnahmetage
# * = täglich
# Mo-Fr = Montag bis Freitag
# Sa,So = Samstag und Sonntag
# Mo,Mi,Fr = einzelne Tage
SCHEDULE_DAYS="*"
# Startzeit (HH:MM)
SCHEDULE_START="20:00"
# Endzeit (HH:MM)
# Leer = Aufnahme läuft bis MAX_DURATION oder manueller Stop
SCHEDULE_STOP="22:00"
###############################################
# Plik-Upload (optional)
# Fertige Aufnahme automatisch auf Plik hochladen
# PLIK_URL muss in der Konfiguration gesetzt sein
###############################################
PLIK_ENABLED=false
+1068
View File
File diff suppressed because it is too large Load Diff