Skip to main content
Live. Production-ready, available on all plans.
Execute a custom FFmpeg command with whitelisted flags. The inputs map stages source files into the working directory by name. The command references them by bare name, and inline -i URLs also work.
Timeout: 900 s max (plan-capped) · Accepts: video, audio, image

Request

curl -X POST https://api.rendobar.com/jobs \
  -H "Authorization: Bearer rb_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "type": "ffmpeg",
    "inputs": {},
    "params": {
      "command": "ffmpeg -i https://cdn.rendobar.com/assets/examples/sample.mp4 -vf scale=1280:720 -c:v libx264 -crf 23 -preset fast output.mp4"
    }
  }'

Parameters

inputs
object
default:"{}"
Working directory for the command. Optional, defaults to an empty map. Each key is a path-safe filename staged under that exact name. Each value is the source for that file. Omit it when every input is an inline -i URL. A value is one of:Filters that read a file by name (subtitles=, lut3d=, drawtext fontfile=, concat lists) must get that file through inputs. They are not -i arguments. See the FFmpeg guide.
command
string
required
Real FFmpeg command starting with ffmpeg. Input URLs go in -i positions, or reference staged inputs files by name.
outputFormat
enum
default:"inferred"
Container format. Inferred from the trailing filename if omitted. One of: mp4, mkv, webm, mov, avi, ts, gif, png, jpg, mp3, wav, flac, ogg, aac, opus, m4a, srt, vtt.
timeout
integer
default:"120"
Max execution time in seconds. Range 1–900. Plan caps apply (Free 5 min, Pro 15 min).
compute
enum
default:"auto"
Which machine class runs the job. One of auto, cpu, gpu.
  • auto (default): a command using an NVENC or CUDA encoder, like h264_nvenc, routes to a GPU. Everything else runs on CPU. You don’t set anything.
  • gpu: force a GPU machine.
  • cpu: force a CPU machine. A command that calls an NVENC encoder is rejected with VALIDATION_ERROR.
GPU jobs run the hardware encoders h264_nvenc, hevc_nvenc, and av1_nvenc on NVIDIA L4 GPUs, billed per second. gpu and auto-routed GPU jobs require the Pro plan; a GPU job on the Free plan returns 403 PLAN_LIMIT. cpu and auto work on every plan.

Response

{ "data": { "id": "job_abc123", "status": "dispatched" } }
Poll GET /jobs/{id} until status: "complete". On success the job carries an output object. On failure it carries an error object. The filenames your command writes define the output. output is one shape for every job type, documented in full on Job output. FFmpeg jobs set output.data to null and return their files in output.file and output.files. Read output.file.url for the file to play or download, and output.files for the full list.
error
object
Present when status is failed.
See Job output for the full shape and the single-file, stream, and set patterns, and output files in the guide for worked request and response examples.

See also