Xora vs. FFmpegAPI.net
FFmpegAPI.net gives you a set of ready-made endpoints, each priced as one API call. Xora runs any FFmpeg command you send and bills the machine time it uses. Which one fits depends on whether your jobs match their endpoints.
| Feature | FFmpegAPI.net | Xora (xora.sh) |
|---|---|---|
| Billing model | API calls per month | Credits: machine time + output size |
| Paid entry plan | Premium: 100 API calls a month | $15 / mo for 400 credits |
| Free plan | A few API calls a month, no card | 25 credits a month, no card |
| Request format | Fixed endpoints with named parameters | Any FFmpeg args array, plus 9 recipes |
-filter_complex, many inputs | Only in fixed shapes (merge, picture-in-picture) | Yes, as you write them |
| Max input | 500 MB hosted default for compress_video; 100 MB for audio trim | 250 MB free · 2 GB Build · 6 GB Scale |
| Job results | Poll a status URL | Poll, or a webhook on every terminal state |
| Your own storage | Outputs on ffmpegapi.net download URLs | Signed URLs, or your own Cloudflare R2 bucket (paid plans) |
| AI agents | MCP server, llms.txt, OpenAPI | MCP server, llms.txt, OpenAPI |
FFmpegAPI.net facts from ffmpegapi.net, checked on 30 October 2026. Its pricing page showed different free-call numbers in two places, so check it for the current values.
Per call or per minute
A per-call price is simple: one request, one unit, whatever the file. That suits small, similar jobs, such as short social clips.
It works against you when jobs differ in size. A 10-second trim and an hour-long compress cost the same call, and a plan’s calls run out at the same rate for both. When the calls are used up, requests are blocked until the limit resets.
Xora bills what a job uses: one credit for each minute of machine time, plus credits for each GB of output. A thumbnail from a large file uses a small part of a credit, and failed and rejected jobs cost nothing. On Build, a credit is about 4¢.
- FFmpegAPI.net: 1 call = 1 request, any size
- Xora: 1 credit = 1 minute of machine time
- Xora: + credits per GB of output
- Failed or rejected on Xora → 0
Fixed endpoints vs. your own command
FFmpegAPI.net has endpoints for common tasks: compress_video, trim_video, merge_videos, add_watermark, add_subtitles, convert_video_to_gif, extract_audio_mp3 and more. If your task is on the list, you send its parameters and you are done.
If it is not on the list, there is no way to send the command yourself. On Xora, mode: "ffmpeg" runs the arguments you already run locally, with filter graphs and several inputs:
{ "mode": "ffmpeg", "input_files": { "in_1": "https://example.com/clip.mp4", "in_2": "https://example.com/logo.png" }, "output_files": { "out_1": "clip_branded.mp4" }, "ffmpeg": { "args": [ "-i", "{{in_1}}", "-i", "{{in_2}}", "-filter_complex", "[0:v][1:v]overlay=W-w-24:24,drawtext=text='Episode 12':x=24:y=H-th-24:fontsize=36:fontcolor=white", "-c:v", "libx264", "-crf", "23", "-c:a", "copy", "{{out_1}}" ] }}Move a job to Xora
Most FFmpegAPI.net endpoints map to a Xora recipe or a few FFmpeg arguments.
| FFmpegAPI.net endpoint | Xora |
|---|---|
compress_video | compress recipe, or raw args |
trim_video | trim recipe, or raw args |
merge_videos | concat recipe, or the concat filter |
extract_audio_mp3 | extractAudio recipe, or raw args for MP3 |
get_first_frame_image | thumbnail recipe with seekSeconds: 0 |
convert_video_to_gif | Raw args with a palette |
add_watermark | Raw args with overlay |
add_subtitles | Raw args with the subtitles filter (SRT, ASS or VTT) |
convert_to_vertical | Raw args with scale and crop |
Then replace the X-API-Key header with Authorization: Bearer YOUR_API_KEY, and poll GET /v1/jobs/{id} or pass webhookUrl.
Where FFmpegAPI.net is strong
- No FFmpeg knowledge needed. Each endpoint takes a few named parameters.
- Ready-made social video tasks, such as TikTok-style captions with transcription, vertical conversion and endless loops.
- Predictable count. If every job is one small request, a call count is easy to plan for.
If your jobs fit their endpoints and are small, FFmpegAPI.net is a simple choice. If you need your own commands, large files, webhooks or your own storage, Xora fits better. See all options in the best FFmpeg APIs compared, and Xora’s pricing.
Frequently asked questions
What is the difference between Xora and FFmpegAPI.net?
FFmpegAPI.net has fixed endpoints such as compress_video, trim_video, merge_videos and add_subtitles, and bills by API call. Xora accepts any FFmpeg argument array, including -filter_complex and several inputs, plus recipes for common jobs, and bills credits for machine time and output size.
How is FFmpegAPI.net priced?
By API calls per month. On 30 October 2026 its pricing page listed a Free plan with a few calls, Premium with 100 calls, Ultra with 1,000 calls and Unlimited. One call costs the same for a short clip and a long video. Xora bills each job by the machine time and output size it uses.
Can I send raw FFmpeg commands to FFmpegAPI.net?
Its docs list fixed endpoints with named parameters, and we did not find an option for raw FFmpeg arguments or -filter_complex. On Xora, mode ffmpeg takes the same arguments you run locally.
Does FFmpegAPI.net have webhooks?
Its docs describe async jobs that you poll with GET /api/job/{job_id}/status; we did not find webhooks. Xora supports both polling and a webhookUrl on every job.
Do both have an MCP server for AI agents?
Yes. FFmpegAPI.net lists an MCP server at mcp.ffmpegapi.net, and Xora runs one at https://api.xora.sh/v1/mcp. Both let an agent run jobs.
Have an FFmpeg command that no endpoint covers?
Send it to Xora as an args array with one POST, and pay only for the credits the job uses.