Updating GPU transcoding
This commit is contained in:
@@ -1467,6 +1467,34 @@ def _resolve_audio_encoder(codec: str) -> str:
|
||||
return AUDIO_ENCODER_MAP.get(key, codec or "libmp3lame")
|
||||
|
||||
|
||||
def _sanitize_video_preset(encoder: str) -> str | None:
|
||||
preset = (VIDEO_NORMALIZE_PRESET or "").strip()
|
||||
if not preset:
|
||||
return None
|
||||
enc = (encoder or "").lower()
|
||||
pl = preset.lower()
|
||||
|
||||
if "nvenc" in enc:
|
||||
allowed = {"p1", "p2", "p3", "p4", "p5", "p6", "p7"}
|
||||
return pl if pl in allowed else "p5"
|
||||
|
||||
if enc in {"libx265", "libx264"}:
|
||||
allowed = {"ultrafast", "superfast", "veryfast", "faster", "fast", "medium", "slow", "slower", "veryslow", "placebo"}
|
||||
if pl in allowed:
|
||||
return pl
|
||||
if pl.startswith("p") and pl[1:].isdigit():
|
||||
return "medium"
|
||||
return "medium"
|
||||
|
||||
if enc == "libaom-av1":
|
||||
allowed = {"good", "best", "realtime"}
|
||||
if pl in allowed:
|
||||
return pl
|
||||
return "good"
|
||||
|
||||
return preset
|
||||
|
||||
|
||||
def _ffprobe_streams(path: Path) -> dict[str, str]:
|
||||
try:
|
||||
out = subprocess.check_output(
|
||||
@@ -1603,8 +1631,9 @@ def _normalize_video_file(path: Path, info: dict[str, str]) -> Path:
|
||||
"-map", "0",
|
||||
"-c:v", v_encoder,
|
||||
]
|
||||
if VIDEO_NORMALIZE_PRESET:
|
||||
cmd.extend(["-preset", VIDEO_NORMALIZE_PRESET])
|
||||
preset_val = _sanitize_video_preset(v_encoder)
|
||||
if preset_val:
|
||||
cmd.extend(["-preset", preset_val])
|
||||
if VIDEO_NORMALIZE_TUNE:
|
||||
cmd.extend(["-tune", VIDEO_NORMALIZE_TUNE])
|
||||
if VIDEO_NORMALIZE_CRF:
|
||||
|
Reference in New Issue
Block a user