A Qencode alternative. JSON or your ffmpeg command.
Qencode covers transcoding, streaming, storage and a player. Videxo does one part of that, processing files with ffmpeg, as JSON or as the command you already run.
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"
}
}' const response = await fetch(`${process.env.VIDEXO_API_URL}/v1/transcode`, {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.VIDEXO_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"input": "https://videxo.io/samples/talk.mp4",
"preset": "web-720p",
"filename": "talk-720p.mp4",
"metadata": {
"order": "1234"
}
}),
});
const job = await response.json(); Side by side
Videxo and Qencode. Checked on Nov 5, 2026.
| Topic | Videxo | Qencode |
|---|---|---|
| Before the first job | An API key as a Bearer token. No bucket, role or queue to create. | An API key, exchanged for a session token; then a task is created and started. |
| How a job is described | JSON operations, or the ffmpeg command you already run, checked before the job is created. | Create a task, then start it with a JSON query of formats and destinations. |
| Where outputs go | Stored for your plan’s retention, 7 days to 30 days, with signed download links that last up to an hour. | Your storage (S3 and compatible, Google Cloud, Azure, FTP, SFTP) or Qencode’s; without a destination, kept for 24 hours. |
| When a job ends | A webhook URL per job or endpoints on your account, signed in the Standard Webhooks format and retried for about a day. | A callback_url per task. |
| Streaming formats, live, DRM | Files in, files out. Adaptive streaming (HLS) and a player Soon | HLS and DASH, live streaming, DRM and a player. |
| AI assistants (MCP) | An MCP server that checks, runs and waits for jobs with your API key. | A hosted MCP server that starts transcoding jobs and tracks them, with your API key. |
| Company | BEO TECHNOLOGY sp. z o.o., Poland, in the European Union. | Qencode, headquartered in Los Angeles, California. |
Videxo
- Before the first job
- An API key as a Bearer token. No bucket, role or queue to create.
- How a job is described
- JSON operations, or the ffmpeg command you already run, checked before the job is created.
- Where outputs go
- Stored for your plan’s retention, 7 days to 30 days, with signed download links that last up to an hour.
- When a job ends
- A webhook URL per job or endpoints on your account, signed in the Standard Webhooks format and retried for about a day.
- Streaming formats, live, DRM
- Files in, files out. Adaptive streaming (HLS) and a player Soon
- AI assistants (MCP)
- An MCP server that checks, runs and waits for jobs with your API key.
- Company
- BEO TECHNOLOGY sp. z o.o., Poland, in the European Union.
Qencode
- Before the first job
- An API key, exchanged for a session token; then a task is created and started.
- How a job is described
- Create a task, then start it with a JSON query of formats and destinations.
- Where outputs go
- Your storage (S3 and compatible, Google Cloud, Azure, FTP, SFTP) or Qencode’s; without a destination, kept for 24 hours.
- When a job ends
- A callback_url per task.
- Streaming formats, live, DRM
- HLS and DASH, live streaming, DRM and a player.
- AI assistants (MCP)
- A hosted MCP server that starts transcoding jobs and tracks them, with your API key.
- Company
- Qencode, headquartered in Los Angeles, California.
Qencode, as its own pages said on Nov 5, 2026: Qencode pricing Transcoding API Receiving callbacks Live streaming MCP server
Moving over
What each part is called here. One request per job.
Every job returns the ffmpeg command it ran, so you can compare the output with what you have today, one job at a time.
Every output type and option| Qencode | Videxo |
|---|---|
| API key, then a session token | One API key as a Bearer token |
| create_task and start_encode2 | One POST /v1/jobs (or POST /v1/transcode) |
| format entries in the query | The outputs list |
| destination | A stored output with a signed download_url |
| callback_url | webhook_url, signed in the Standard Webhooks format |
| status | GET /v1/jobs/{id} |
Honestly
When Qencode fits better. Pick it then.
- You want transcoding, HLS or DASH delivery, storage and a player from one vendor.
- You stream live.
Questions, answered.
What are the limits?
On Pay as you go a job runs up to 10 min of ffmpeg with inputs up to 1 GB; on Scale up to 60 min with inputs up to 10 GB. Uploads from apps and browsers go up to 100 MB.
Which ffmpeg and which codecs?
ffmpeg 6.1.1, with H.264, H.265, VP8, VP9 and AV1 video, and AAC, MP3, Opus, FLAC and WAV audio, among others. The command rules list every option, filter and format a command can use.
Can I send my own ffmpeg command?
Yes. POST /v1/jobs takes input URLs, output names and an ffmpeg command that names files by alias. It is checked before the job exists; a refused command answers with a code for each problem and costs nothing.
How long are the files kept?
Outputs stay for your plan’s retention. Each download link is signed and lasts up to one hour; read the job again for a fresh one, or delete the files sooner with DELETE /v1/jobs/{id}/files.
How do I know a webhook came from you?
Each delivery is signed with your account’s secret in the Standard Webhooks format. Verify it with the standardwebhooks library or a few lines of code; the docs show both.
Who runs Videxo?
BEO TECHNOLOGY sp. z o.o., a limited company in Poland, in the European Union. Write to hello@videxo.io.