You write the FFmpeg command. Rendobar downloads inputs, runs the command in an isolated container, returns a signed download URL. Same syntax you’d run locally.Documentation Index
Fetch the complete documentation index at: https://rendobar.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
How it runs
- Validate — command parsed against 8 security layers (flag whitelist, format/filter blocklists)
- Download — input URLs pulled to a sandboxed worker
- Substitute — URLs replaced with local paths in the FFmpeg command
- Execute — FFmpeg runs in an isolated container with network disabled
- Upload — output goes to R2
- Return — signed
outputUrlavailable viaGET /jobs/{id}
Parameters
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
type | string | yes | — | "raw.ffmpeg" |
inputs | object | yes | — | {} when URLs are inline in the command. Otherwise a name→URL map matching filenames in the command |
params.command | string | yes | — | Real FFmpeg command starting with ffmpeg. Input URLs go in -i positions |
params.outputFormat | string | no | inferred | Override container format. Inferred from trailing filename if omitted |
params.timeout | int | no | 120 | Server-side max execution in seconds. Range 1–900 |
Validate without executing
Free, no auth:{ data: { valid: true, args: [...], inferredOutputFormat: "mp4" } } or { data: { valid: false, error: "..." } }.
Allowed flags
~120 whitelisted flags. Common ones:| Flag | Purpose |
|---|---|
-i | Input file |
-f | Force format |
-c:v, -c:a | Video / audio codec (stream specifiers like -c:v:0 work) |
-vf, -af | Video / audio filter |
-filter_complex | Complex filter graph |
-map | Stream mapping |
-ss, -t | Seek position, duration |
-r, -s | Frame rate, resolution |
-b:v, -b:a | Video / audio bitrate |
-crf, -preset | Quality + preset |
-an, -vn | Disable audio / video |
-y | Overwrite output |
-movflags, -strict | Container flags, strict standards |
VALIDATION_ERROR.
Security model
Eight layers, in order:- Clean environment. Inherited env vars stripped. Only
PATH,HOME,TMPDIRremain. - Flag whitelist. ~120 known-safe flags, including stream specifiers.
- Format blocklist.
-f lavfi,concat,hls,tee,segment,dash,nullblocked. - Filter function blocklist. File-reading filters (
movie,amovie,sendcmd,zmq,ladspa,frei0r) blocked. - Filter parameter blocklist.
textfile=,filename=in subtitles, absolute paths in subtitle filters blocked. - Pattern blocklist. Path traversal (
../),/proc/,/sys/,subfile:blocked. - Per-input protocol restriction.
-protocol_whitelist fileinjected before each-iserver-side. - Container isolation. Trigger.dev container sandboxing, restricted stdio.
Cost & timeout
Priced per compute second — wall-clock time FFmpeg ran, excluding file transfer. Typical cost ~$0.05/min. Plan timeouts: 5 min (Free), 15 min (Pro). Exceeding the timeout returnsPROVIDER_TIMEOUT; no credits charged.
Examples
Scale to 720p
Extract audio
Trim 30s starting at 1:00
Merge video + audio tracks
Error handling
FFmpeg exits non-zero → job fails withPROVIDER_ERROR:
VALIDATION_ERROR:
See also
- Raw FFmpeg API reference
- CLI
- Webhooks — push instead of poll
- Credits