Ava2lon's picture
Upload 205 files
1425afc verified
Raw
History Blame Contribute Delete
688 Bytes
from __future__ import annotations
from dataclasses import dataclass, field
from pathlib import Path
@dataclass
class FFmpegCommand:
args: list[str] = field(default_factory=lambda: ["ffmpeg"])
def add(self, *args: object) -> "FFmpegCommand":
self.args.extend(str(arg) for arg in args)
return self
def input(self, path: str | Path, **options: object) -> "FFmpegCommand":
for key, value in options.items():
self.add(f"-{key}", value)
self.add("-i", path)
return self
def overwrite(self) -> "FFmpegCommand":
self.add("-y")
return self
def build(self) -> list[str]:
return list(self.args)