Video

Image on videoAPI

Add images or logos on top of videos

Test in Dashboard View Docs ← All Tools

Three ways to use this tool

REST API

One POST request. Get the result back directly — as an image, video, or JSON depending on the tool.

terminal
curl -X POST https://apiai.me/api/workflow/image-on-video \
     -H "X-API-Key: YOUR_API_KEY" \
     -F "image=@input.jpg" \
     -F "crf=23" \
     -F "end_time=0" \
     -F "entrance=none" \
     -F "exit=none" \
     -F "fade_in=0" \
     -F "fade_out=0" \
     -F "margin=20" \
     -F "opacity=1.0" \
     -F "overlay_image=VALUE" \
     -F "position=bottom-right" \
     -F "preset=medium" \
     -F "rotation=0" \
     -F "scale=0.15" \
     -F "start_time=0"
     --output result.png

Dashboard Playground

Test this tool visually before writing any code. Upload an image, set parameters, and see the result live. When it looks right, copy the auto-generated curl command and paste it into your app.

  1. Open the dashboard → API Toolbox
  2. Find Image on video and click it
  3. Upload your input and adjust parameters
  4. Copy the curl command and ship
Open Dashboard →

Batch Processing

Process hundreds of images at once without writing a loop. Upload a CSV with one row per item, set your parameters, and download the results as a ZIP when they're done.

  1. Open the dashboard → Batches
  2. Select Image on video
  3. Add your content and start the batch
  4. Download results ZIP when complete
Go to Batches →

Parameters

Name Required Description Default / Options
crf optional Video quality 0-51: lower = better quality but larger file 23
end_time optional When the overlay disappears, in seconds or HH:MM:SS (0 = until end) 0
entrance optional Slide-in animation with ease-in-out: direction and speed in seconds noneslide-left-0.5slide-left-1slide-left-1.5slide-right-0.5slide-right-1slide-right-1.5slide-top-0.5slide-top-1slide-top-1.5slide-bottom-0.5slide-bottom-1slide-bottom-1.5
exit optional Slide-out animation with ease-in-out: direction and speed in seconds noneslide-left-0.5slide-left-1slide-left-1.5slide-right-0.5slide-right-1slide-right-1.5slide-top-0.5slide-top-1slide-top-1.5slide-bottom-0.5slide-bottom-1slide-bottom-1.5
fade_in optional Seconds to fade the overlay in (0 = instant appear) 0
fade_out optional Seconds to fade the overlay out (0 = instant disappear) 0
margin optional Distance from the edge in pixels 20
opacity optional Overlay transparency from 0.0 (invisible) to 1.0 (fully opaque) 1.0
overlay_image required Base64-encoded PNG or JPEG image to overlay onto the video (logo, watermark, sticker)
position optional Where to place the overlay on screen bottom-centerbottom-leftbottom-righttop-centertop-lefttop-rightcenter-leftcentercenter-right
preset optional Encoding speed: faster encodes quicker but larger file ultrafastsuperfastveryfastfasterfastmediumslowslowerveryslow
rotation optional Rotate the overlay image in degrees (0 = no rotation) 0
scale optional Overlay size: 0.01-1.0 = fraction of video width (e.g. 0.15 = 15%), values above 1 = pixel width (e.g. 200 = 200px wide) 0.15
start_time optional When the overlay appears, in seconds or HH:MM:SS (0 = from start) 0

Ready to integrate?

Get an API key, test Image on video in the dashboard, and copy the curl command.

Get API Key Full API Reference