FFmpeg API
for developers.
Run real FFmpeg commands through a cloud REST API. Use FFmpeg as a service for video transcoding, compression, thumbnails, and audio extraction while FFHub handles workers, storage, retries, and scaling.
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].urlFFmpeg 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.
One API surface,
normal FFmpeg syntax.
FFHub keeps the integration small: upload a file or pass a URL, create a task, poll status from your backend, and download the result.
Provide input
Use a public URL or upload a local file through the Files API.
Submit command
POST your FFmpeg command to /v1/tasks with a bearer token, just like any other REST API call.
Track progress
Poll task status from your backend, list recent tasks, or watch runs in the dashboard.
Use output URL
Completed tasks return output URLs you can store, serve, transcribe, or pass downstream.
All the media jobs
your product keeps postponing.
If FFmpeg can express it, FFHub is designed to run it as an asynchronous cloud task for SaaS products, UGC platforms, creator tools, internal automation, and AI media workflows.
SaaS video uploads
Normalize customer uploads into playable MP4, create thumbnails, compress large files, and return output URLs to your application.
UGC and community platforms
Process user-generated videos for feeds, moderation samples, previews, social sharing, and storage without operating FFmpeg workers.
Creator and media tools
Build online video compressors, MP4 to MP3 converters, clip trimmers, thumbnail generators, or batch creator workflows on top of one API.
AI media pipelines
Extract audio for transcription, generate clips for analysis, prepare files for speech-to-text, and pass outputs into LLM or vision workflows.
Marketing and education workflows
Automate webinar trimming, course video compression, demo video conversion, and social-ready exports from your backend or no-code tools.
Batch processing
Trigger cloud FFmpeg tasks from queues, webhooks, cron jobs, admin dashboards, or customer-facing automation workflows.
Use FFmpeg directly,
without owning the machinery.
FFHub sits between raw infrastructure and preset-only video APIs.
| Requirement | FFHub | Self-hosted FFmpeg | Preset-based APIs |
|---|---|---|---|
| Command control | Raw FFmpeg command arguments | Full control | Usually limited to supported presets |
| Infrastructure | Managed cloud workers and storage | You operate servers, queues, and cleanup | Managed, but less FFmpeg-native |
| Custom filters | Use normal filter graphs | Use normal filter graphs | Often restricted or unavailable |
| Integration shape | REST task API with polling, task history, and output URLs | Custom worker protocol | Provider-specific job format |
| File upload | Presigned upload flow for local files and direct URLs | You build upload, storage, and cleanup | Usually provider-specific storage rules |
| Pricing model | Credit-based processing time, no idle worker capacity | Pay for servers even when queues are quiet | Often minute tiers, presets, or package pricing |
| Best fit | Developers who already know FFmpeg | Teams with media infrastructure capacity | Teams that only need standard outputs |
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 a cloud FFmpeg API that still accepts normal command arguments.
- 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.
Send your first FFmpeg task
in a few minutes.
Use the quickstart for a real request-response flow, open the playground to test a command, or review pricing before wiring FFmpeg tasks into your backend.