How to merge videos with an API
Stitching an intro, a demo and a call-to-action into one reel is a concat filtergraph in FFmpeg, and it breaks the moment two clips have different resolutions or frame rates. An API normalises and joins them for you.
The manual FFmpeg way
The concat filter demands matching resolutions, frame rates and audio layouts across every clip, or the join fails. A typed tool normalises the inputs first and can crossfade the joins.
ffmpeg -i intro.mp4 -i demo.mp4 -i cta.mp4 -filter_complex "[0:v][0:a][1:v][1:a][2:v][2:a]concat=n=3:v=1:a=1[v][a]" -map "[v]" -map "[a]" reel.mp4
Do it with one API call
- 1
Provide the clips in order
Give two to six public URLs, or upload each and use the returned media URLs. The first is named "main".
- 2
Call the merge tool
Optionally set transition to "fade" for a crossfade at every join instead of a hard cut.
- 3
Download the reel
Poll the job and download the single joined MP4 from the signed output URL.
curl https://kinopipe.com/api/v1/tools/merge-videos \
-H "Authorization: Bearer kp_live_..." \
-H "Content-Type: application/json" \
-d '{
"inputs": [
{ "id": "main", "url": "https://example.com/intro.mp4" },
{ "id": "clip-2", "url": "https://example.com/demo.mp4" },
{ "id": "clip-3", "url": "https://example.com/cta.mp4" }
],
"options": { "transition": "fade", "transition_duration": 0.5 }
}'FAQ
How many clips can I merge?
Between two and six clips in a single job, joined in the order you provide them.
What if the clips have different sizes?
KinoPipe normalises resolution and frame rate before joining, so mismatched sources still merge cleanly.