31 lines
859 B
Python
31 lines
859 B
Python
from pathlib import Path
|
|
|
|
def get_presets_dir() -> Path:
|
|
Path("./presets").mkdir(exist_ok=True)
|
|
return Path("./presets")
|
|
|
|
def parse_yaml_config(config: dict) -> list:
|
|
in_file = config.get("input_file")
|
|
out_file = config.get("output_file")
|
|
video = config.get("video", {})
|
|
audio = config.get("audio", {})
|
|
|
|
cmd = ["ffmpeg", "-y", "-i", in_file]
|
|
|
|
if video:
|
|
cmd += ["-c:v", video.get("codec", "libx264")]
|
|
if "bitrate" in video:
|
|
cmd += ["-b:v", video["bitrate"]]
|
|
if "preset" in video:
|
|
cmd += ["-preset", video["preset"]]
|
|
|
|
if audio:
|
|
cmd += ["-c:a", audio.get("codec", "aac")]
|
|
if "bitrate" in audio:
|
|
cmd += ["-b:a", audio["bitrate"]]
|
|
if "channels" in audio:
|
|
cmd += ["-ac", str(audio["channels"])]
|
|
|
|
cmd += [out_file]
|
|
return cmd
|