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