Add ProRes audio workflow and UI

This commit is contained in:
Melbar
2026-05-07 18:00:52 +02:00
parent 19909b4ab7
commit 0a8741ea87
3 changed files with 810 additions and 291 deletions
+70 -19
View File
@@ -1,42 +1,59 @@
# Amazon PVD Mezzanine Encoder # Amazon PVD Mezzanine Encoder
**Automatisches Python-Script zur Erstellung von Amazon PVD-konformen Mezzanine-VOD-Dateien** **Automatisches Python-Tool zur Erstellung von Amazon PVD-konformen Mezzanine-VOD-Dateien und Audio-Master-Dateien**
(Blu-ray • ProRes • DVD • PAL • NTSC • Interlaced) (ProRes • Blu-ray • DVD • PAL • NTSC • Interlaced)
--- ---
## Features ## Features
- **Vollautomatische Erkennung** von SD/HD, PAL/NTSC und interlaced Material - **Vollautomatische Erkennung** von SD/HD, PAL/NTSC und interlaced Material
- **Bester Deinterlacer** (`bwdif mode=0`) → saubere 25 fps bei PAL-DVDs (kein Double-Framerate) - **ProRes-Quellen mit mehreren Tonspuren** werden unterstuetzt
- **Automatische Farbraum-Konvertierung** (Rec.601 PAL/NTSC ↔ Rec.709) inkl. `colorspace`-Filter - **Audio-Sprache und Layout aus Dateinamen** (`DEU51_ENG20`, `DEU20`, usw.)
- **Forced Subtitles** werden automatisch eingebrannt (wenn `_forced.srt` vorhanden) - **HD-PVD-MP4 mit 30 Mbit/s** und deutscher Stereo-Spur
- **Intelligente Audio-Auswahl** (automatisch deutsche Spur oder manuelle Wahl) - **Automatischer Downmix** von deutscher 5.1-Spur auf Stereo, wenn keine deutsche Stereo-Spur vorhanden ist
- **Amazon PVD optimierte Parameter** (Bitrate, Level, GOP, x264-Settings) - **Separate PCM-Audio-MOVs** fuer deutsche Tonspuren und originalsprachige Tonspuren
- **Saubere Metadaten** + `faststart` für beste Streaming-Performance - **Bester Deinterlacer** (`bwdif mode=0`) → saubere 25 fps bei PAL-DVDs (kein Double-Framerate)
- Funktioniert mit Drag & Drop (`.bat` oder direkt auf Script ziehen) - **Automatische Farbraum-Konvertierung** (Rec.601 PAL/NTSC ↔ Rec.709) inkl. `colorspace`-Filter
- **Forced Subtitles** werden automatisch eingebrannt (wenn `_forced.srt` vorhanden)
- **Informative Tkinter-UI** mit Analyse, Audio-Uebersicht und Encoding-Log
- **Amazon PVD optimierte Parameter** (Bitrate, Level, GOP, x264-Settings)
- **Saubere Metadaten** + `faststart` für beste Streaming-Performance
- Funktioniert mit Drag & Drop (`.bat` oder direkt auf Script ziehen)
## Voraussetzungen ## Voraussetzungen
- Windows (getestet) - Windows (getestet)
- FFmpeg + FFprobe (in `C:\Software\` oder Pfad in Script anpassen) - FFmpeg + FFprobe (in `C:\Software\` oder Pfad in Script anpassen)
- Python 3.8+ - Python 3.10+
- Schreibzugriff auf den Ausgabeordner `H:\VOD` - Schreibzugriff auf den Ausgabeordner `H:\VOD`
## Installation & Nutzung ## Installation & Nutzung
1. Repo klonen oder herunterladen 1. Repo klonen oder herunterladen
2. `ffmpeg.exe` und `ffprobe.exe` in `C:\Software\` ablegen (oder Pfade im Script ändern) 2. `ffmpeg.exe` und `ffprobe.exe` in `C:\Software\` ablegen (oder Pfade im Script ändern)
3. Optional: `create_mezzanine.bat` anlegen: 3. Optional: `create_mezzanine.bat` anlegen:
```bat ```bat
@echo off @echo off
python "%~dp0pvd_mezzanine.py" %* set "PYTHON_EXE=%LocalAppData%\Programs\Python\Python311\python.exe"
if exist "%PYTHON_EXE%" (
"%PYTHON_EXE%" "%~dp0pvd_mezzanine.py" %*
) else (
py -3 "%~dp0pvd_mezzanine.py" %*
)
pause pause
``` ```
4. Videodatei per Drag & Drop auf `create_mezzanine.bat` ziehen oder direkt aus der Konsole starten: 4. Tool starten:
```powershell ```powershell
python .\pvd_mezzanine.py "C:\Pfad\zur\Quelle.mkv" .\create_mezzanine.bat
``` ```
5. In der UI Quelle auswaehlen, analysieren und Encoding starten.
Fuer automatisierte CLI-Laeufe kann das Encoding direkt gestartet werden:
```powershell
py -3 .\pvd_mezzanine.py --cli "C:\Pfad\zur\Quelle.mov"
```
## Ausgabe ## Ausgabe
@@ -46,12 +63,42 @@ Das Script schreibt die fertige Mezzanine-Datei standardmäßig nach:
H:\VOD H:\VOD
``` ```
Der Dateiname wird automatisch aus dem Quellpfad bzw. Blu-ray-Projektordner gebildet und endet auf: Der MP4-Dateiname wird automatisch aus dem Quellpfad bzw. Blu-ray-Projektordner gebildet und endet auf:
```text ```text
_DEU20_PVD.mp4 _DEU20_PVD.mp4
``` ```
Bei ProRes-Quellen werden zusaetzlich Audio-MOVs erzeugt:
```text
Titel_DEU_AUDIO_PCM.mov
Titel_OV_AUDIO_PCM.mov
```
Wenn nur deutsche Tonspuren vorhanden sind, wird nur `Titel_DEU_AUDIO_PCM.mov` erzeugt.
## ProRes-Audio-Namen
Die Sprache und das Tonformat der Tonspuren werden aus dem Dateinamen gelesen. Die Tokens stehen in der Reihenfolge der Audiospuren im ProRes.
Beispiele:
```text
Film_DEU51_ENG20.mov
```
- Spur 1: Deutsch 5.1
- Spur 2: Englisch 2.0
```text
Film_DEU20_DEU51.mov
```
- Spur 1: Deutsch 2.0
- Spur 2: Deutsch 5.1
- Es wird nur eine deutsche PCM-Audio-MOV erzeugt.
## Untertitel ## Untertitel
Forced Subtitles werden automatisch eingebrannt, wenn neben der Quelle eine gleichnamige Datei mit dem Suffix `_forced.srt` liegt. Forced Subtitles werden automatisch eingebrannt, wenn neben der Quelle eine gleichnamige Datei mit dem Suffix `_forced.srt` liegt.
@@ -63,9 +110,13 @@ Film.mkv
Film_forced.srt Film_forced.srt
``` ```
## Audio-Auswahl ## Audio-Ausgabe
Das Script bevorzugt automatisch eine deutsche Audiospur (`ger` oder `deu`). Wenn keine deutsche Spur erkannt wird, fragt es interaktiv nach der gewünschten Spur. - Das PVD-MP4 bekommt immer deutschen Stereo-Ton.
- Wenn eine deutsche 2.0-Spur vorhanden ist, wird sie verwendet.
- Wenn keine deutsche 2.0-Spur vorhanden ist, wird die erste deutsche Spur auf Stereo heruntergemischt.
- Alle deutschen Tonspuren werden als uncompressed PCM in eine separate MOV geschrieben.
- Alle nicht-deutschen Tonspuren werden als uncompressed PCM in eine separate MOV geschrieben.
## Konfiguration ## Konfiguration
+8 -3
View File
@@ -1,3 +1,8 @@
@echo off @echo off
python "%~dp0pvd_mezzanine.py" %* set "PYTHON_EXE=%LocalAppData%\Programs\Python\Python311\python.exe"
pause if exist "%PYTHON_EXE%" (
"%PYTHON_EXE%" "%~dp0pvd_mezzanine.py" %*
) else (
py -3 "%~dp0pvd_mezzanine.py" %*
)
pause
+732 -269
View File
File diff suppressed because it is too large Load Diff