fix(audio): nur die beste Tonspur pro Sprache verlustfrei kopieren
Ampel / ampel (push) Failing after 29s
Ampel / ampel (push) Failing after 29s
This commit is contained in:
@@ -527,9 +527,9 @@ def build_handbrake_cmd(input_path: str, output_path: str,
|
||||
3. Wird ein Disc-Typ NICHT komprimiert (4K verlustfrei), bleiben ohnehin alle
|
||||
Sprachen drin — und das ist bei einer verlustfreien Ablage richtig.
|
||||
|
||||
`--audio-lang-list` zusammen mit `--all-audio` heißt laut HandBrake-Hilfe:
|
||||
alle Tonspuren, die zu einer der Sprachen passen. Leere Liste = alles, wie
|
||||
bisher.
|
||||
`--audio-lang-list` zusammen mit `--first-audio` heißt: HandBrake pickt pro
|
||||
Sprache genau die erste (beste) Tonspur heraus. `--audio-codec copy` reicht
|
||||
diese dann verlustfrei durch, statt sie auf Stereo herunterzurechnen.
|
||||
"""
|
||||
befehl = [
|
||||
"HandBrakeCLI",
|
||||
@@ -540,7 +540,8 @@ def build_handbrake_cmd(input_path: str, output_path: str,
|
||||
audio = [s for s in (audio_sprachen or []) if s]
|
||||
if audio:
|
||||
befehl += ["--audio-lang-list", ",".join(audio)]
|
||||
befehl.append("--all-audio")
|
||||
befehl.append("--first-audio")
|
||||
befehl += ["--audio-codec", "copy", "--audio-fallback", "av_aac"]
|
||||
untertitel = [s for s in (untertitel_sprachen or []) if s]
|
||||
if untertitel:
|
||||
befehl += ["--subtitle-lang-list", ",".join(untertitel)]
|
||||
|
||||
@@ -38,7 +38,8 @@ def test_handbrake_cmd_arbeitet_auf_datei_nicht_geraet():
|
||||
assert cmd[cmd.index("--input") + 1] == "/app/temp/raw/x/t00.mkv"
|
||||
assert cmd[cmd.index("--output") + 1] == "/app/media/bluray/x/t00.mkv"
|
||||
assert "--preset" in cmd
|
||||
assert "--all-audio" in cmd # alle Sprachen behalten
|
||||
assert "--first-audio" in cmd # beste Spur pro Sprache behalten
|
||||
assert "--audio-codec" in cmd
|
||||
assert "--all-subtitles" in cmd
|
||||
|
||||
|
||||
@@ -578,12 +579,12 @@ def test_handbrake_kommando_ohne_auswahl_bleibt_wie_bisher():
|
||||
cmd = build_handbrake_cmd("/a.mkv", "/b.mkv", "H.265 MKV 1080p30")
|
||||
assert "--audio-lang-list" not in cmd
|
||||
assert "--subtitle-lang-list" not in cmd
|
||||
assert "--all-audio" in cmd and "--all-subtitles" in cmd
|
||||
assert "--first-audio" in cmd and "--all-subtitles" in cmd
|
||||
|
||||
|
||||
def test_handbrake_kommando_mit_sprachauswahl():
|
||||
"""--audio-lang-list zusammen mit --all-audio heisst laut HandBrake-Hilfe:
|
||||
alle Tonspuren, die zu einer der Sprachen passen."""
|
||||
"""--audio-lang-list zusammen mit --first-audio heisst laut HandBrake-Hilfe:
|
||||
nur die erste (beste) Tonspur, die zu einer der Sprachen passen."""
|
||||
from ripping import build_handbrake_cmd
|
||||
|
||||
cmd = build_handbrake_cmd("/a.mkv", "/b.mkv", "H.265 MKV 1080p30",
|
||||
@@ -591,4 +592,4 @@ def test_handbrake_kommando_mit_sprachauswahl():
|
||||
untertitel_sprachen=["deu"])
|
||||
assert cmd[cmd.index("--audio-lang-list") + 1] == "deu,jpn"
|
||||
assert cmd[cmd.index("--subtitle-lang-list") + 1] == "deu"
|
||||
assert "--all-audio" in cmd and "--all-subtitles" in cmd
|
||||
assert "--first-audio" in cmd and "--all-subtitles" in cmd
|
||||
|
||||
Reference in New Issue
Block a user