ferraus ffmpeg
Run the managed FFmpeg with any arguments (pass-through)
Synopsis
ferraus ffmpeg <args> [options]
What it does
Passes every argument after -- straight to the FFmpeg binary the bridge uses (FERRAUS_FFMPEG / ffmpeg.path, the managed install from ferraus doctor --install-ffmpeg, or ffmpeg on PATH). FFmpeg's log streams to stderr; text it prints on stdout is returned as the result. The exact command line is recorded in the JSON envelope. A non-zero exit is an error carrying FFmpeg's last log lines.
Examples
Any FFmpeg job, here a video resize
ferraus ffmpeg -- -i clip.mov -vf scale=1280:-2 -c:a copy clip-720p.mp4
Print FFmpeg's own help
ferraus ffmpeg -- -h
Extract subtitles and get the command line back as JSON
ferraus ffmpeg --json -- -i in.mkv -map 0:s:0 subs.srt
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
<args> | list | — | Arguments passed to ffmpeg verbatim; put them after -- Repeatable. |
Global options
Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Processing failed |
| 2 | Usage or parameter error |
| 3 | Input missing or unreadable |
| 8 | Cancelled |
| 70 | Internal error (bug) |
Common mistakes
- Expecting human-readable text when scripting: add
--jsonfor a stable machine result.
For models
- MCP tool:
ferraus_ffmpeg - Schema:
ferraus schema ffmpeg - Pipeline:
{ op: ffmpeg, args: { ... } }(flag names with_instead of-) - fx stage: no
{"command": "ffmpeg", "defaults": {}}