ffmpeg api · cloud workers

FFmpeg API
for developers.

Run real FFmpeg commands in the cloud. Send a command over HTTP, let FFHub handle workers, storage, retries, and scaling, then get a URL to the processed output.

Raw FFmpeg commandsREST APIOutput URLsNo server setup
POST /v1/tasks
curl -X POST https://api.ffhub.io/v1/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "command": "ffmpeg -i https://example.com/input.mp4 -c:v libx264 -crf 24 output.mp4"
  }'

# → { "task_id": "tsk_..." }
# Poll GET /v1/tasks/{task_id}
# → outputs[0].url
why not self-host

FFmpeg is easy locally.
Production is the hard part.

The command is rarely the problem. The operational surface around it is what slows teams down.

Worker maintenance

Keep FFmpeg binaries, codecs, OS packages, CPU capacity, and isolation updated without touching your app servers.

Queues and retries

Video jobs fail, time out, and need polling. A clean task lifecycle matters more than another shell script.

Storage plumbing

Inputs need reachable URLs, outputs need durable download links, and temporary files need cleanup.

Burst scaling

One upload is simple. A backlog of user videos needs concurrency control and workers that can scale independently.

how it works

One API surface,
normal FFmpeg syntax.

FFHub keeps the integration small: upload or pass a URL, create a task, poll status, and download the result.

01

Provide input

Use a public URL or upload a local file through the Files API.

02

Submit command

POST your FFmpeg command to /v1/tasks with a bearer token.

03

Track progress

Poll task status from your backend or watch runs in the dashboard.

04

Use output URL

Completed tasks return public output URLs you can store, serve, or pass downstream.

what you can build

All the media jobs
your product keeps postponing.

If FFmpeg can express it, FFHub is designed to run it as an asynchronous cloud task.

Video transcoding

Convert MOV, MKV, AVI, WebM, or user uploads into web-ready MP4, HLS, or DASH outputs.

Compression pipelines

Shrink large uploads with CRF, presets, scaling, and codec choices you control.

Thumbnail generation

Capture poster frames for UGC feeds, CMS assets, product videos, or previews.

Audio extraction

Pull MP3, AAC, WAV, FLAC, or Opus tracks for transcription, podcasts, and AI workflows.

Subtitles and overlays

Burn captions, add text watermarks, overlay logos, and keep exact filter control.

Batch processing

Trigger tasks from queues, webhooks, cron jobs, or your own backend workflows.

compare options

Use FFmpeg directly,
without owning the machinery.

FFHub sits between raw infrastructure and preset-only video APIs.

RequirementFFHubSelf-hosted FFmpegPreset-based APIs
Command controlRaw FFmpeg command argumentsFull controlUsually limited to supported presets
InfrastructureManaged cloud workers and storageYou operate servers, queues, and cleanupManaged, but less FFmpeg-native
Custom filtersUse normal filter graphsUse normal filter graphsOften restricted or unavailable
Integration shapeREST task API with polling and output URLsCustom worker protocolProvider-specific job format
Best fitDevelopers who already know FFmpegTeams with media infrastructure capacityTeams that only need standard outputs
fit

Good for API-first teams,
not a magic preset layer.

FFHub is intentionally close to FFmpeg. That is the point.

Use FFHub when

  • You already know the FFmpeg flags you need.
  • You want async tasks without running workers.
  • You need custom filters, stream mapping, or unusual codecs.
  • You want to start small and pay for processing instead of capacity.

Use something else when

  • You want a consumer editor or timeline UI.
  • You need a preset-only encoding workflow with no FFmpeg knowledge.
  • You want to own every machine and tune low-level infrastructure yourself.
  • You require a full video CMS, player, DRM, and analytics platform.
start

Send your first FFmpeg task
in a few minutes.

Use the quickstart for a real request-response flow, or open the playground if you want to try a command before wiring it into your backend.

FFmpeg API for Developers — Cloud FFmpeg over REST | FFHub