125 lines
5.1 KiB
Markdown
125 lines
5.1 KiB
Markdown
# Jobs
|
||
|
||

|
||
|
||
Jobs sind vorkonfigurierte Aufnahme-Vorlagen. Jeder Job definiert einen Stream, optional einen Zeitplan und Plugin-Einstellungen.
|
||
|
||
## Job erstellen
|
||
|
||
Im Web-UI unter **Jobs → + Neuer Job**.
|
||
|
||
### Pflichtfelder
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| **Name** | Eindeutiger Name (wird als Ordnername verwendet) |
|
||
| **Stream-URL** | URL des Streams. Erlaubt: `http`, `https`, `rtmp`, `rtmps`, `rtsp`, `rtsps` |
|
||
|
||
### Optionale Felder
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| **Senderbibliothek** | Sender aus der Bibliothek auswählen — URL und Typ werden übernommen |
|
||
| **Beschreibung** | Freitext-Notiz zum Job (wird auch in NTFY-Nachrichten mitgeschickt) |
|
||
| **Typ** | Automatisch erkannt aus URL. Manuell wählbar: RTMP, HLS, MP3, AAC, OGG, HTTP |
|
||
| **Ausgabeformat** | Dateiendung. Leer = automatisch (mp4 für Video, mp3 für Audio) |
|
||
| **Max. Dauer** | Zeitlimit in Minuten. Entfällt bei Zeitplan mit Endzeit |
|
||
| **Segment-Dauer** | Aufnahme in Teile zerlegen (Minuten pro Segment) |
|
||
| **Extra ffmpeg Argumente** | Zusätzliche ffmpeg-Parameter (z.B. `-b:a 192k`), siehe [Extra ffmpeg-Argumente](#extra-ffmpeg-argumente) |
|
||
|
||
## Extra ffmpeg-Argumente
|
||
|
||
Aus Sicherheitsgründen sind nur bestimmte ffmpeg-Optionen erlaubt. Alles andere wird mit einer Fehlermeldung abgelehnt.
|
||
|
||
| Art | Erlaubte Optionen |
|
||
|-----|-------------------|
|
||
| Ohne Wert | `-vn` `-an` `-sn` `-dn` `-shortest` `-copyts` |
|
||
| Mit einem Wert | `-c` `-c:a` `-c:v` `-codec` `-codec:a` `-codec:v` `-acodec` `-vcodec` `-b:a` `-b:v` `-ar` `-ac` `-map` `-metadata` `-metadata:s:a` `-t` `-to` `-q:a` `-aq` `-af` `-filter:a` `-bsf:a` `-bsf:v` `-f` `-movflags` `-segment_format` `-fflags` `-avoid_negative_ts` `-max_muxing_queue_size` |
|
||
|
||
Audiofilter (`-af`, `-filter:a`) dürfen keine Quellen wie `movie`, `amovie`, `sendcmd`, `zmq` oder Dateien verwenden. ffmpeg läuft zudem mit einer Protokoll-Whitelist, lokale Dateien können nicht als Eingabe gelesen werden.
|
||
|
||
Beispiele:
|
||
|
||
```
|
||
-b:a 192k -ar 44100
|
||
-c:a libmp3lame -q:a 2
|
||
-af loudnorm -metadata title="Meine Sendung"
|
||
```
|
||
|
||
## Validierung
|
||
|
||
| Feld | Regel |
|
||
|------|-------|
|
||
| **Startzeit / Endzeit** | Format `HH:MM` |
|
||
| **Startdatum / Enddatum** | Format `YYYY-MM-DD` |
|
||
| **Tage** | `*` oder Liste/Bereiche wie `Mo-Fr,So` (siehe [Tage-Syntax](#tage-syntax)) |
|
||
| **Vor-/Nachlaufzeit** | 0–120 Minuten |
|
||
| **Segment-Dauer** | 10 Sekunden bis 24 Stunden |
|
||
| **Max. Dauer** | bis 30 Tage |
|
||
|
||
Ungültige Eingaben werden mit einer Fehlermeldung abgelehnt (API: 400/422).
|
||
|
||
## Zeitplan
|
||
|
||
Aktiviert automatische Aufnahmen zu festgelegten Zeiten.
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| **Einmalig** | Nur einmal am angegebenen Datum ausführen |
|
||
| **Startdatum** | Datum für einmalige Aufnahme |
|
||
| **Enddatum** | Enddatum für mehrtägige Aufnahmen (leer = gleicher Tag) |
|
||
| **Tage** | Wochentage: `*` (täglich), `Mo-Fr`, `Sa,So`, `Mo,Mi,Fr` |
|
||
| **Startzeit** | Aufnahme-Beginn (HH:MM) |
|
||
| **Endzeit** | Aufnahme-Ende (HH:MM) — Dauer wird automatisch berechnet |
|
||
|
||
Wenn Start- und Endzeit gesetzt sind, wird die Aufnahmedauer automatisch berechnet. Das Feld "Max. Dauer" wird dann nicht benötigt.
|
||
|
||
### Tage-Syntax
|
||
|
||
| Eingabe | Bedeutung |
|
||
|---------|-----------|
|
||
| `*` | Jeden Tag |
|
||
| `Mo-Fr` | Montag bis Freitag |
|
||
| `Sa,So` | Samstag und Sonntag |
|
||
| `Mo,Mi,Fr` | Montag, Mittwoch, Freitag |
|
||
| `Mo-Mi,Fr` | Montag bis Mittwoch und Freitag |
|
||
|
||
Unterstützt: `Mo/Mon/Montag`, `Di/Tue/Dienstag`, `Mi/Wed/Mittwoch`, `Do/Thu/Donnerstag`, `Fr/Fri/Freitag`, `Sa/Sat/Samstag`, `So/Sun/Sonntag`
|
||
|
||
### Zeitpuffer
|
||
|
||

|
||
|
||
Pro Job können Vor- und Nachlaufzeit konfiguriert werden, um die Aufnahme um den geplanten Zeitraum herum zu erweitern:
|
||
|
||
| Feld | Beschreibung |
|
||
|------|-------------|
|
||
| **Vorlaufzeit** | Aufnahme startet X Minuten vor der geplanten Startzeit |
|
||
| **Nachlaufzeit** | Aufnahme läuft X Minuten über die geplante Endzeit hinaus |
|
||
|
||
Die Standardwerte können in den Einstellungen unter **Zeitplan-Puffer** festgelegt werden.
|
||
|
||
### Mehrtägige Aufnahmen
|
||
|
||
Bei einmaligen Aufnahmen kann ein **Enddatum** angegeben werden, das nach dem Startdatum liegt. Die Aufnahmedauer wird dann automatisch über die Tagesgrenzen hinweg berechnet.
|
||
|
||
## Plugins pro Job
|
||
|
||
Jeder Job kann individuell Plugin-Funktionen aktivieren:
|
||
|
||
| Option | Beschreibung |
|
||
|--------|-------------|
|
||
| **Benachrichtigungen (NTFY)** | Push-Nachrichten bei Start, Stop und Fehlern für diesen Job |
|
||
| **Plik-Upload** | Automatischer Upload nach Aufnahme-Ende |
|
||
| **File nach Upload lokal löschen** | Lokale Datei nach erfolgreichem Plik-Upload entfernen |
|
||
|
||
Die globale NTFY- und Plik-Konfiguration (URL, Token, etc.) erfolgt in den [Einstellungen](konfiguration.md).
|
||
|
||
## Manuelle Aufnahme
|
||
|
||
Jobs können auch manuell über den **Aufnehmen**-Button gestartet werden, unabhängig vom Zeitplan. Pro Job läuft höchstens eine Aufnahme gleichzeitig. Ein Job mit laufender Aufnahme kann nicht gelöscht werden.
|
||
|
||
## Schnellaufnahme
|
||
|
||
Für einmalige Aufnahmen ohne Job: **Dashboard → + Schnellaufnahme**. URL eingeben (oder aus der Senderbibliothek wählen), optional Name und Dauer angeben, sofort starten.
|