Add ProRes audio workflow and UI
This commit is contained in:
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user