Skip to content

Preview Videxo runs jobs, accepts uploads up to 100 MB, serves output downloads and sends signed webhooks. Sign in with email, GitHub or a passkey. Payments are not connected yet, so credit packs and paid plans cannot be bought. Read the quickstart

ffmpeg cloud

ffmpeg in the cloud. Without a server to keep.

Run ffmpeg in the cloud with one HTTPS request, a JSON job or your own command, and get the files and a signed webhook back, with no AWS setup, Docker image or queue to keep.

curl "$VIDEXO_API_URL/v1/transcode" \
  -H "Authorization: Bearer $VIDEXO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "input": "https://videxo.io/samples/talk.mp4",
  "preset": "web-720p",
  "filename": "talk-720p.mp4",
  "metadata": {
    "order": "1234"
  }
}'

What you stop running

Your command stays. The servers go.

Running ffmpeg on your own servers compared with Videxo
PartOn your own serversWith Videxo
ffmpeg itselfInstall it, pick codecs, patch it.ffmpeg 6.1.1 with H.264, H.265, VP9, AV1, Opus and 48 filters, ready for every job.
The commandsLook up filters and flags for every format and size.Describe each output in JSON with a preset or a few options, or send the commands you already have.
MachinesSize them for the largest file you will get.Jobs of up to 60 min and 10 GB of inputs, by plan; nothing to size.
A queueRun one, with workers that pick jobs up.Jobs wait for a free slot; your plan sets how many run at once.
StorageBuckets, names, cleanup.Outputs have signed download links, size, SHA-256 and an expiry set by your plan.
Telling your appCallbacks, retries, signatures.A signed webhook, retried for about a day.
  • ffmpeg itself

    On your own servers
    Install it, pick codecs, patch it.
    With Videxo
    ffmpeg 6.1.1 with H.264, H.265, VP9, AV1, Opus and 48 filters, ready for every job.
  • The commands

    On your own servers
    Look up filters and flags for every format and size.
    With Videxo
    Describe each output in JSON with a preset or a few options, or send the commands you already have.
  • Machines

    On your own servers
    Size them for the largest file you will get.
    With Videxo
    Jobs of up to 60 min and 10 GB of inputs, by plan; nothing to size.
  • A queue

    On your own servers
    Run one, with workers that pick jobs up.
    With Videxo
    Jobs wait for a free slot; your plan sets how many run at once.
  • Storage

    On your own servers
    Buckets, names, cleanup.
    With Videxo
    Outputs have signed download links, size, SHA-256 and an expiry set by your plan.
  • Telling your app

    On your own servers
    Callbacks, retries, signatures.
    With Videxo
    A signed webhook, retried for about a day.

Compatible

Bring your ffmpeg work. Commands, formats, codecs.

  1. 01

    Your commands

    The arguments you run today, with each file named by an alias. The supported options, filter graphs and expressions stay as written.

  2. 02

    Your formats

    Outputs as .mp4 .mov .m4a .mkv .webm .ts .mp3 .aac .wav .flac .ogg .opus .gif .png .jpg .jpeg; the extension picks the muxer.

  3. 03

    Your codecs

    libx264, libx265, libvpx, libvpx-vp9, libaom-av1, mpeg4, mjpeg, png, gif, ffv1, aac, libmp3lame, libopus, libvorbis, flac, pcm_s16le, pcm_s24le, pcm_f32le, alac, and copy to keep a stream as it is.

  4. 04

    Your files

    Inputs from public http or https URLs or private uploads up to 100 MB; outputs named as you name them.

ffmpeg \
  -i talk.mp4 \
  -vf scale=-2:720 \
  -c:v libx264 -crf 23 \
  -c:a copy \
  talk-720p.mp4

Your command with its files named by alias, or the same job described in JSON. Both return the ffmpeg command they run.

Scale and storage

Jobs at once, by plan. Expiry set by plan.

Send as many jobs as you like; each starts when one of your plan’s slots is free. Each output gets an expires_at from your plan’s retention, and its SHA-256.

  • Signed download links for outputs
  • Direct uploads up to 100 MB and the plan input limit
  • Expiry set by your plan
  • Deleting stored files through the API
Plans and prices
What each plan allows
PlanJobs at onceLongest jobInputs per jobExpires after
Pay as you go310 min1 GB7 days
Starter310 min1 GB7 days
Pro1030 min5 GB30 days
Scale3060 min10 GB30 days

Questions, answered.

Which ffmpeg version runs my jobs?

ffmpeg 6.1.1, with 48 filters and the codecs libx264, libx265, libvpx, libvpx-vp9, libaom-av1, mpeg4, mjpeg, png, gif, ffv1, aac, libmp3lame, libopus, libvorbis, flac, pcm_s16le, pcm_s24le, pcm_f32le, alac. The supported commands page lists every option, format and filter.

How is this different from running ffmpeg on AWS or in Docker myself?

On AWS or in a Docker image of your own you build and patch the ffmpeg binary, size the machines, run a queue, move files to and from storage and send your own notifications. Here a job is one HTTPS request: the files come back with a SHA-256 and an expiry, and a signed webhook says when they are ready. You pay for the seconds ffmpeg runs and the gigabytes it reads and writes.

Do I have to write ffmpeg commands?

No. Describe each output in JSON with a preset or a few options, from curl or any HTTP client; the job returns the ffmpeg command it runs. Commands you already have work as they are.

When do outputs expire?

Each output gets an expires_at from your plan’s retention: 7 days on Pay as you go, 7 days on Starter, 30 days on Pro, 30 days on Scale. DELETE /v1/jobs/{id}/files removes a job’s stored outputs and sets deleted_at; they stay listed with that time.

Files are unavailable after expires_at, so download what you want to keep before then. Download links expire in at most one hour; read the job again for a fresh one.

What if a job runs longer than my plan allows?

The job ends failed with time_limit. The longest job is 10 min on Pay as you go, 10 min on Starter, 30 min on Pro, 60 min on Scale.

Run your first job. Free, no card.