HandBrake

This commit is contained in:
2026-03-09 20:37:56 +00:00
parent 1b07fa4f14
commit 4c879d2485
22 changed files with 1590 additions and 773 deletions

View File

@@ -1,138 +1,180 @@
# Einstellungsreferenz
Vollständige Übersicht aller Ripster-Einstellungen. Alle Einstellungen werden über die Web-Oberfläche unter **Einstellungen** verwaltet.
Vollständige Übersicht aller Ripster-Einstellungen. Alle Einstellungen werden über die Web-Oberfläche unter **Einstellungen** verwaltet und in SQLite gespeichert.
---
## Kategorie: Pfade (paths)
## Profil-System
| Schlüssel | Typ | Standard | Pflicht | Beschreibung |
|---------|-----|---------|---------|-------------|
| `raw_dir` | string | — | ✅ | Verzeichnis für rohe MKV-Dateien nach dem Ripping |
| `movie_dir` | string | — | ✅ | Ausgabeverzeichnis für encodierte Filme |
| `log_dir` | string | `./logs` | — | Verzeichnis für Log-Dateien |
Ripster erkennt den Medientyp einer eingelegten Disc (Blu-ray / DVD / CD) und wählt automatisch die passenden profil-spezifischen Einstellungen. Für viele Schlüssel gibt es zusätzlich zur globalen Einstellung eine Variante pro Profil:
!!! example "Beispielkonfiguration"
```
raw_dir = /mnt/nas/raw
movie_dir = /mnt/nas/movies
log_dir = /var/log/ripster
```
| Profil | Erkennungsmerkmale |
|--------|--------------------|
| `bluray` | UDF-Dateisystem, Laufwerk-Modell enthält „Blu-ray", Disc-Label wie BDMV |
| `dvd` | ISO9660/UDF, Laufwerk-Modell enthält „DVD", VIDEO_TS-Struktur |
| `other` | Alles andere (CD, unbekannt) |
**Auflösungsreihenfolge für profil-spezifische Einstellungen:**
1. Profil-spezifischer Wert (`_bluray` / `_dvd`) wenn gesetzt, hat dieser Vorrang
2. Alternativ-Profil als Fallback (Blu-ray → DVD-Wert als Fallback und umgekehrt)
Pfad-Einstellungen (`raw_dir`, `movie_dir`) und Besitz-Einstellungen (`raw_dir_owner`, `movie_dir_owner`) werden **ausschließlich** aus dem passenden Profil bezogen kein Cross-Profil-Fallback.
---
## Kategorie: Tools (tools)
## Kategorie: Pfade
| Schlüssel | Typ | Pflicht | Beschreibung |
|-----------|-----|---------|-------------|
| `raw_dir` | string | ✅ | Verzeichnis für rohe MKV-Dateien (Fallback wenn kein Profil-Wert) |
| `raw_dir_bluray` | string | — | Raw-Verzeichnis für Blu-rays |
| `raw_dir_dvd` | string | — | Raw-Verzeichnis für DVDs |
| `raw_dir_other` | string | — | Raw-Verzeichnis für sonstige Medien |
| `raw_dir_owner` | string | — | Besitzer für Raw-Verzeichnis (`user:group`, Fallback) |
| `raw_dir_bluray_owner` | string | — | Besitzer für Raw-Verzeichnis (Blu-ray) |
| `raw_dir_dvd_owner` | string | — | Besitzer für Raw-Verzeichnis (DVD) |
| `raw_dir_other_owner` | string | — | Besitzer für Raw-Verzeichnis (Sonstiges) |
| `movie_dir` | string | ✅ | Ausgabeverzeichnis für Filme (Fallback) |
| `movie_dir_bluray` | string | — | Ausgabeverzeichnis für Blu-rays |
| `movie_dir_dvd` | string | — | Ausgabeverzeichnis für DVDs |
| `movie_dir_other` | string | — | Ausgabeverzeichnis für sonstige Medien |
| `movie_dir_owner` | string | — | Besitzer für Ausgabeverzeichnis (Fallback) |
| `movie_dir_bluray_owner` | string | — | Besitzer für Ausgabeverzeichnis (Blu-ray) |
| `movie_dir_dvd_owner` | string | — | Besitzer für Ausgabeverzeichnis (DVD) |
| `movie_dir_other_owner` | string | — | Besitzer für Ausgabeverzeichnis (Sonstiges) |
| `log_dir` | string | — | Verzeichnis für Log-Dateien (Standard: `./logs`) |
---
## Kategorie: Laufwerk
| Schlüssel | Typ | Standard | Beschreibung |
|---------|-----|---------|-------------|
|-----------|-----|---------|-------------|
| `drive_mode` | select | `auto` | `auto` = automatisch erkennen, `explicit` = festes Gerät |
| `drive_device` | string | `/dev/sr0` | Geräte-Pfad (nur bei `explicit`) |
| `disc_poll_interval_ms` | number | `4000` | Polling-Intervall in Millisekunden (100060000) |
| `makemkv_source_index` | number | `0` | Laufwerk-Index für MakeMKV (bei mehreren Laufwerken) |
---
## Kategorie: Tools (global)
| Schlüssel | Typ | Standard | Beschreibung |
|-----------|-----|---------|-------------|
| `makemkv_command` | string | `makemkvcon` | Befehl oder absoluter Pfad zu MakeMKV |
| `handbrake_command` | string | `HandBrakeCLI` | Befehl oder absoluter Pfad zu HandBrake |
| `mediainfo_command` | string | `mediainfo` | Befehl oder absoluter Pfad zu MediaInfo |
| `makemkv_min_length_minutes` | number | `15` | Mindest-Titellänge in Minuten (0999) |
| `pipeline_max_parallel_jobs` | number | `1` | Maximale Anzahl parallel laufender Jobs (112) |
| `handbrake_restart_delete_incomplete_output` | boolean | `true` | Unvollständige Ausgabedatei beim Encode-Neustart löschen |
!!! tip "Absolute Pfade verwenden"
Falls die Tools nicht im `PATH` des Systems sind:
```
makemkv_command = /usr/local/bin/makemkvcon
handbrake_command = /usr/local/bin/HandBrakeCLI
mediainfo_command = /usr/bin/mediainfo
```
---
## Kategorie: Encoding (encoding)
### Kategorie: Tools Blu-ray
| Schlüssel | Typ | Standard | Beschreibung |
|---------|-----|---------|-------------|
| `handbrake_preset` | string | `H.265 MKV 1080p30` | Name des HandBrake-Presets |
| `handbrake_extra_args` | string | _(leer)_ | Zusätzliche HandBrake CLI-Argumente |
| `output_extension` | string | `mkv` | Dateiendung der Ausgabedatei |
| `filename_template` | string | `{title} ({year})` | Template für den Dateinamen |
|-----------|-----|---------|-------------|
| `makemkv_rip_mode_bluray` | select | `backup` | Rip-Modus: `mkv` oder `backup` |
| `makemkv_analyze_extra_args_bluray` | string | | Zusatz-CLI-Parameter für Analyse (Blu-ray) |
| `makemkv_rip_extra_args_bluray` | string | — | Zusatz-CLI-Parameter für Rip (Blu-ray) |
| `mediainfo_extra_args_bluray` | string | — | Zusatz-CLI-Parameter für mediainfo (Blu-ray) |
| `handbrake_preset_bluray` | string | `H.264 MKV 1080p30` | HandBrake-Preset für Blu-rays |
| `handbrake_extra_args_bluray` | string | — | Zusatz-CLI-Argumente für HandBrake (Blu-ray) |
| `output_extension_bluray` | select | `mkv` | Ausgabeformat: `mkv` oder `mp4` |
| `filename_template_bluray` | string | `${title} (${year})` | Dateiname-Template (Blu-ray) |
| `output_folder_template_bluray` | string | — | Ordnername-Template (Blu-ray, leer = Dateiname-Template) |
### Verfügbare HandBrake-Presets
### Kategorie: Tools DVD
Eine vollständige Liste der verfügbaren Presets:
| Schlüssel | Typ | Standard | Beschreibung |
|-----------|-----|---------|-------------|
| `makemkv_rip_mode_dvd` | select | `mkv` | Rip-Modus: `mkv` oder `backup` |
| `makemkv_analyze_extra_args_dvd` | string | — | Zusatz-CLI-Parameter für Analyse (DVD) |
| `makemkv_rip_extra_args_dvd` | string | — | Zusatz-CLI-Parameter für Rip (DVD) |
| `mediainfo_extra_args_dvd` | string | — | Zusatz-CLI-Parameter für mediainfo (DVD) |
| `handbrake_preset_dvd` | string | `H.264 MKV 480p30` | HandBrake-Preset für DVDs |
| `handbrake_extra_args_dvd` | string | — | Zusatz-CLI-Argumente für HandBrake (DVD) |
| `output_extension_dvd` | select | `mkv` | Ausgabeformat: `mkv` oder `mp4` |
| `filename_template_dvd` | string | `${title} (${year})` | Dateiname-Template (DVD) |
| `output_folder_template_dvd` | string | — | Ordnername-Template (DVD, leer = Dateiname-Template) |
```bash
HandBrakeCLI --preset-list
```
### Globale Fallback-Einstellungen für Encode
Häufig verwendete Presets:
Diese Werte werden verwendet, wenn kein profil-spezifischer Wert konfiguriert ist:
| Preset | Beschreibung |
|--------|-------------|
| `H.265 MKV 1080p30` | H.265/HEVC, Full-HD, 30fps |
| `H.265 MKV 720p30` | H.265/HEVC, HD, 30fps |
| `H.264 MKV 1080p30` | H.264/AVC, Full-HD, 30fps |
| `HQ 1080p30 Surround` | Hohe Qualität, Full-HD mit Surround |
| Schlüssel | Typ | Standard | Beschreibung |
|-----------|-----|---------|-------------|
| `handbrake_preset` | string | `H.265 MKV 1080p30` | Fallback HandBrake-Preset |
| `handbrake_extra_args` | string | — | Fallback Extra-Args |
| `makemkv_rip_mode` | select | `mkv` | Fallback Rip-Modus |
| `makemkv_analyze_extra_args` | string | — | Fallback Analyse-Args |
| `makemkv_rip_extra_args` | string | — | Fallback Rip-Args |
| `mediainfo_extra_args` | string | — | Fallback MediaInfo-Args |
| `output_extension` | select | `mkv` | Fallback Ausgabeformat |
| `filename_template` | string | `${title} (${year})` | Fallback Dateiname-Template |
| `output_folder_template` | string | — | Fallback Ordnername-Template |
### Dateiname-Template-Platzhalter
### Template-Platzhalter
| Platzhalter | Beispiel |
|------------|---------|
| `{title}` | `Inception` |
| `{year}` | `2010` |
| `{imdb_id}` | `tt1375666` |
| `{type}` | `movie` |
| `${title}` | `Inception` |
| `${year}` | `2010` |
| `${imdbId}` | `tt1375666` |
---
## Kategorie: Laufwerk (drive)
| Schlüssel | Typ | Standard | Optionen | Beschreibung |
|---------|-----|---------|---------|-------------|
| `drive_mode` | select | `auto` | `auto`, `explicit` | Laufwerk-Erkennungsmodus |
| `drive_device` | string | `/dev/sr0` | — | Geräte-Pfad (nur bei `explicit`) |
| `disc_poll_interval_ms` | number | `4000` | 100060000 | Polling-Intervall in Millisekunden |
**`drive_mode` Optionen:**
| Modus | Beschreibung |
|------|-------------|
| `auto` | Ripster erkennt das Laufwerk automatisch |
| `explicit` | Verwendet das in `drive_device` konfigurierte Gerät |
---
## Kategorie: MakeMKV (makemkv)
| Schlüssel | Typ | Standard | Min | Max | Beschreibung |
|---------|-----|---------|-----|-----|-------------|
| `makemkv_min_length_minutes` | number | `15` | `0` | `999` | Mindest-Titellänge in Minuten |
| `makemkv_backup_mode` | boolean | `false` | — | — | Backup-Modus statt MKV-Modus |
**`makemkv_min_length_minutes`:** Titel kürzer als dieser Wert werden von MakeMKV ignoriert. Verhindert das Rippen von Menü-Schleifen und kurzen Extra-Clips.
**`makemkv_backup_mode`:** Im Backup-Modus erstellt MakeMKV eine vollständige Disc-Kopie mit Menüs. Im Standard-Modus werden direkt MKV-Dateien erstellt.
---
## Kategorie: OMDb (omdb)
| Schlüssel | Typ | Standard | Pflicht | Beschreibung |
|---------|-----|---------|---------|-------------|
| `omdb_api_key` | string | — | ✅ | API-Key von [omdbapi.com](https://www.omdbapi.com/) |
| `omdb_default_type` | select | `movie` | — | Standard-Suchtyp: `movie` oder `series` |
---
## Kategorie: Benachrichtigungen (notifications)
## Kategorie: Metadaten
| Schlüssel | Typ | Standard | Beschreibung |
|---------|-----|---------|-------------|
| `pushover_user_key` | string | — | PushOver User-Key |
| `pushover_api_token` | string | — | PushOver API-Token |
|-----------|-----|---------|-------------|
| `omdb_api_key` | string | — | API-Key von [omdbapi.com](https://www.omdbapi.com/) |
| `omdb_default_type` | select | `movie` | Vorauswahl für OMDb-Suche: `movie`, `series`, `episode` |
Beide Felder müssen konfiguriert sein, um PushOver-Benachrichtigungen zu aktivieren. Die Verbindung kann mit dem **Test-Button** in den Einstellungen geprüft werden.
---
## Kategorie: Benachrichtigungen (PushOver)
| Schlüssel | Typ | Standard | Beschreibung |
|-----------|-----|---------|-------------|
| `pushover_enabled` | boolean | `false` | Master-Schalter für PushOver |
| `pushover_token` | string | — | Application-Token |
| `pushover_user` | string | — | User-Key |
| `pushover_device` | string | — | Optionales Ziel-Device |
| `pushover_title_prefix` | string | `Ripster` | Präfix im Benachrichtigungstitel |
| `pushover_priority` | number | `0` | Priorität (-2 bis 2) |
| `pushover_timeout_ms` | number | `7000` | HTTP-Timeout für PushOver-Requests (ms) |
### Granulare Event-Schalter
| Schlüssel | Standard | Beschreibung |
|-----------|---------|-------------|
| `pushover_notify_metadata_ready` | `true` | Bei Metadaten-Auswahl benachrichtigen |
| `pushover_notify_rip_started` | `true` | Bei MakeMKV-Rip-Start |
| `pushover_notify_encoding_started` | `true` | Bei HandBrake-Start |
| `pushover_notify_job_finished` | `true` | Bei erfolgreichem Abschluss |
| `pushover_notify_job_error` | `true` | Bei Fehler |
| `pushover_notify_job_cancelled` | `true` | Bei manuellem Abbruch |
| `pushover_notify_reencode_started` | `true` | Bei Re-Encode-Start |
| `pushover_notify_reencode_finished` | `true` | Bei erfolgreichem Re-Encode |
---
## Kategorie: Monitoring
| Schlüssel | Typ | Standard | Beschreibung |
|-----------|-----|---------|-------------|
| `hardware_monitoring_enabled` | boolean | `false` | Hardware-Monitoring aktivieren (CPU, RAM, Temp.) |
| `hardware_monitoring_interval_ms` | number | `5000` | Monitoring-Polling-Intervall (ms) |
---
## Standard-Einstellungen zurücksetzen
Über die Datenbank können Einstellungen auf Standardwerte zurückgesetzt werden:
Einen einzelnen Wert über die Datenbank zurücksetzen:
```bash
sqlite3 backend/data/ripster.db \
"DELETE FROM settings_values WHERE key = 'handbrake_preset';"
"DELETE FROM settings_values WHERE key = 'handbrake_preset_bluray';"
```
Beim nächsten Laden der Einstellungen wird der Standardwert verwendet.
Beim nächsten Laden wird der Standardwert aus `settings_schema.default_value` verwendet.