Skip to content

Ffmpeg Api · Merge Videos

Integrate

Model id ffmpeg-api/merge-videos
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ffmpeg-api/merge-videos?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "videos": [
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
    ]
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Up to $0.612 per run charged by actual usage, the rest is refunded Run it on this page

Get API key
Utility Video to Video

Joins two or more videos from URLs into one clip, with optional target frame rate and output resolution

Utility · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required video_urls
Drop a file, or

Video URLs listed in the order they should be merged.

resolution

Choose the final video's resolution with both dimensions—width and height—in the range 512 to 2048.

Advanced target_fps · resolution_aspect_ratio_video_index

Set the output video's FPS to override the default, which takes the lowest frame rate among the input videos.

Zero-based input video index that determines the aspect ratio when no resolution is specified. Leaving it unset uses the smallest width and the smallest height found across all input videos.

POST /run/ffmpeg-api/merge-videos?wait=20 quote → $0.612
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ffmpeg-api/merge-videos?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "videos": [
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
    ]
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Ffmpeg Api · Merge Videos

Concatenates the videos listed in `video_urls` in order; at least 2 are required. `target_fps` (1 to 60) sets the output frame rate, otherwise the lowest input frame rate is used. Output size can be set with `resolution` (presets or custom width and height from 512 to 2048), or taken from one input via `resolution_aspect_ratio_video_index`. The result includes the merged video and metadata about the sources.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
video_urlsrequired videos
Typeurl[] · video
≥ 2 items
Video URLs listed in the order they should be merged.
target_fpsoptional
Typenumber | null
1 – 60
Set the output video's FPS to override the default, which takes the lowest frame rate among the input videos.
resolutionoptional
Typeobject
square_hdsquareportrait_4_3portrait_16_9landscape_4_3landscape_16_9
Choose the final video's resolution with both dimensions—width and height—in the range 512 to 2048.
resolution_aspect_ratio_video_indexoptional
Typeinteger | null
≥ 0
Zero-based input video index that determines the aspect ratio when no resolution is specified. Leaving it unset uses the smallest width and the smallest height found across all input videos.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ffmpeg-api/merge-videos",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 612,
    "usd": "0.612",
    "charged": 612,
    "refunded": 0
  },
  "input": {
    "video_urls": [
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4",
      "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
    ]
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "metadata": {}
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video file produced by merging.
metadata
objectMerged video's metadata, including information about the original videos.

More models: Video to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/ffmpeg-api/merge-videos.md. All models and guides: https://doitong.com/developers/llms.txt