A self-hostable FFmpeg API

Run your exact FFmpeg commands on your own distributed fleet of workers. One control plane, many nodes, S3-compatible storage. A drop-in, self-hosted alternative with a 1-to-1 compatible API.

Get started API Reference
POST /api/ffmpeg Submit a job
GET /api/jobs List jobs
GET /api/jobs/:id Get job status
POST /api/jobs/:id/cancel Cancel a job
POST /api/tmp-file Upload a temp file

Distributed nodes

Small persistent agent for Linux, macOS, and Windows. Pair it to the control plane in seconds; it polls for work, no inbound ports needed.

Standard FFmpeg

Same flags, same filter graphs, same syntax. Chain multiple commands in one job with local intermediate files.

S3-compatible storage

Inputs are staged on the node, outputs land in your S3/R2/MinIO bucket as stable download URLs. A zero-config builtin store is included for local dev.

Dashboard & admin

Watch every job with realtime logs, manage API keys and usage, and get full visibility into nodes, jobs, and users from the admin panel.

curl -X POST https://ffmpeg-api.way.srl/api/ffmpeg \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input_files": { "input.mp4": "https://example.com/input.mp4" },
  "output_files": ["output.mp4"],
  "ffmpeg_commands": ["-i {{input.mp4}} -t 5 {{output.mp4}}"]
}'