Documentation Index

Fetch the complete documentation index at: https://cloudinary.com/documentation/llms.txt

Use this file to discover all available pages before exploring further.

Image & Video APIs

Video concatenation

Last updated: Jun-08-2026

Use Cloudinary's video concatenation options to join videos together, combine videos with images, or concatenate private and authenticated assets. For transition effects between concatenated assets, see Video transition effects.

Before you start

Whether concatenating videos together, concatenating videos with images, with or without transitions, there are a few important points to note:

Concatenate videos together

To concatenate videos, use the overlay video parameter (l_video: in URLs) to specify the name of another uploaded video and then add the splice flag (fl_splice in URLs), which instructs Cloudinary to concatenate the video with the base video rather than treating it as a layer over it.

You can also concatenate videos with custom transitions using the transition effect (e_transition in URLs).

Tip
Make sure you've read the important notes regarding concatenating media.

For example, to concatenate the video named fashion_walk onto the end of the video named meadow_walk, with both videos set to a width of 300 pixels and a height of 200 pixels:

By default, Cloudinary splices the video onto the end of the base video. To splice the video onto the beginning, add the start_offset parameter and set it to 0 (so_0 in URLs). For example, to concatenate the video named fashion_walk onto the beginning of the video named meadow_walk, with both videos set to a width of 300 pixels and a height of 200 pixels:

To concatenate only a section of a video to the end of another video, use the offset parameters (see Trimming videos for more information on the parameters and their possible values) together with the layer_apply flag (fl_layer_apply in URLs). For example, to splice the first 5 seconds of the video named fashion_walk to the end of the video named meadow_walk, with both videos set to a width of 300 pixels and a height of 200 pixels.

The layer_apply flag in the above example instructs Cloudinary to apply the so_0 parameter in the layer component as a regular start offset transformation parameter applied to the layer, and not in its special concatenate-to-beginning usage for fl_splice. To use so_0 with fl_splice for concatenating to the beginning, in a case where fl_layer_apply is also used, specify so_0 in the fl_layer_apply component, for example: /l_...../fl_layer_apply,so_0.

Concatenate videos with images

Cloudinary also supports the concatenation of videos with images by using the following combination of parameters:

  • overlay (l: in URLs) to specify the name of an uploaded image.
  • splice flag (fl_splice in URLs) to indicate that Cloudinary should concatenate the image onto the base video and not add it as an overlay.
  • duration parameter (du in URLs) to specify the amount of time in seconds to display the image.
  • start_offset (optional) set to 0 (so_0 in URLs) to concatenate the image at the beginning of the video instead of at the end.
  • layer_apply flag (fl_layer_apply) to indicate that Cloudinary should apply the above parameters to the image (with the overlay parameter) and not the base video.

Tip
Make sure you've read the important notes regarding concatenating media.

For example, to concatenate the image named red-sweater to the start of the video named meadow_walk for a duration of 3 seconds (Cloudinary scales the image to a width of 300 pixels and a height of 200 pixels, resizes the video to those dimensions, and pads the video for the extra space):

Video tutorial: Concatenate videos using the Node.js SDK

Watch this video tutorial to learn how to concatenate two videos using the Node.js SDK:

This video is brought to you by Cloudinary's video player - embed your own!
Use the controls to set the playback speed, navigate to chapters of interest and select subtitles in your preferred language.

Concatenating authenticated or private assets

Similar to specifying authenticated or private assets in overlays, when concatenating authenticated or private assets, you need to modify the syntax accordingly:

Images:

  • For private images: l_private:<public_id of image>
  • For authenticated images: l_authenticated:<public_id of image>

Videos:

  • For private videos: l_video:private:<public_id of video>
  • For authenticated videos: l_video:authenticated:<public_id of video>

Audio assets:

  • For private audio assets: l_audio:private:<public_id of audio asset>
  • For authenticated audio assets: l_audio:authenticated:<public_id of audio asset>

Related topics

✔️ Feedback sent!

Rate this page:

one star two stars three stars four stars five stars