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
|
3. Wird ein Disc-Typ NICHT komprimiert (4K verlustfrei), bleiben ohnehin alle
|
||||||
Sprachen drin — und das ist bei einer verlustfreien Ablage richtig.
|
Sprachen drin — und das ist bei einer verlustfreien Ablage richtig.
|
||||||
|
|
||||||
`--audio-lang-list` zusammen mit `--all-audio` heißt laut HandBrake-Hilfe:
|
`--audio-lang-list` zusammen mit `--first-audio` heißt: HandBrake pickt pro
|
||||||
alle Tonspuren, die zu einer der Sprachen passen. Leere Liste = alles, wie
|
Sprache genau die erste (beste) Tonspur heraus. `--audio-codec copy` reicht
|
||||||
bisher.
|
diese dann verlustfrei durch, statt sie auf Stereo herunterzurechnen.
|
||||||
"""
|
"""
|
||||||
befehl = [
|
befehl = [
|
||||||
"HandBrakeCLI",
|
"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]
|
audio = [s for s in (audio_sprachen or []) if s]
|
||||||
if audio:
|
if audio:
|
||||||
befehl += ["--audio-lang-list", ",".join(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]
|
untertitel = [s for s in (untertitel_sprachen or []) if s]
|
||||||
if untertitel:
|
if untertitel:
|
||||||
befehl += ["--subtitle-lang-list", ",".join(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("--input") + 1] == "/app/temp/raw/x/t00.mkv"
|
||||||
assert cmd[cmd.index("--output") + 1] == "/app/media/bluray/x/t00.mkv"
|
assert cmd[cmd.index("--output") + 1] == "/app/media/bluray/x/t00.mkv"
|
||||||
assert "--preset" in cmd
|
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
|
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")
|
cmd = build_handbrake_cmd("/a.mkv", "/b.mkv", "H.265 MKV 1080p30")
|
||||||
assert "--audio-lang-list" not in cmd
|
assert "--audio-lang-list" not in cmd
|
||||||
assert "--subtitle-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():
|
def test_handbrake_kommando_mit_sprachauswahl():
|
||||||
"""--audio-lang-list zusammen mit --all-audio heisst laut HandBrake-Hilfe:
|
"""--audio-lang-list zusammen mit --first-audio heisst laut HandBrake-Hilfe:
|
||||||
alle Tonspuren, die zu einer der Sprachen passen."""
|
nur die erste (beste) Tonspur, die zu einer der Sprachen passen."""
|
||||||
from ripping import build_handbrake_cmd
|
from ripping import build_handbrake_cmd
|
||||||
|
|
||||||
cmd = build_handbrake_cmd("/a.mkv", "/b.mkv", "H.265 MKV 1080p30",
|
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"])
|
untertitel_sprachen=["deu"])
|
||||||
assert cmd[cmd.index("--audio-lang-list") + 1] == "deu,jpn"
|
assert cmd[cmd.index("--audio-lang-list") + 1] == "deu,jpn"
|
||||||
assert cmd[cmd.index("--subtitle-lang-list") + 1] == "deu"
|
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