Run any FFmpeg command through one API call

Sandboxed, no servers to run, and you can pay only for the compute you use.

Every job gets its own sandbox

Each job runs in a fresh container with no internet access and no secrets, and the container is destroyed when the job ends. If a job fails on our side, you aren't charged.

Any FFmpeg command, within the sandbox

Your filters, codecs and flags work as usual. Commands can only touch the files you declare, so URLs inside the command and options that read or write other files are rejected with a clear error. Short jobs can return their result in the same request with ?wait=25.

curl https://api.mediatofu.com/v1/run?wait=25 \
  -H "Authorization: Bearer $MEDIATOFU_KEY" \
  -d '{
    "input_files": { "in": "https://example.com/clip.mov" },
    "output_files": { "out": "small.mp4" },
    "ffmpeg_command": "-i {{in}} -vf scale=1280:-2 -crf 26 {{out}}"
  }'

Or skip the flags

curl https://api.mediatofu.com/v1/tools/compress?wait=25 \
  -H "Authorization: Bearer $MEDIATOFU_KEY" \
  -d '{ "input": "https://example.com/clip.mov", "crf": 28 }'

Tools: probe, compress, convert, resize, trim, thumbnail, extract-audio, gif. Output files are kept for 7 days.

Pricing

Pay per use$0.018 / compute minute
  • Billed by the second
  • No monthly fee
  • Jobs up to 5 minutes
  • Inputs up to 2 GB
  • 3 jobs at once
  • $25 monthly spending cap by default
Starter$5 / month
  • 500 commands
  • Jobs up to 1 minute
  • Inputs up to 500 MB
  • 2 jobs at once
Pro$19 / month
  • 1,500 compute minutes
  • Jobs up to 10 minutes
  • Inputs up to 2 GB
  • 5 jobs at once

Input limits apply to files passed by URL. Direct uploads are limited to 100 MB on every plan.