Genbox

← all tools · video

🎬 Video and Music Mix

Join your clips and photos into one video and lay a track over it

About this tool

Turn a handful of clips and photos plus one song into a single video. Drop your MP4 clips and your JPG/PNG pictures (or add an AI image from a prompt), drag them into order and give each picture a length in seconds. The first clip or picture sets the format and everything else is scaled to cover and centre-cropped, so nothing looks stretched. Add the music, see at a glance whether the picture or the song is longer, and choose what happens at the end: hold the last picture, fill the rest with a colour, or fade the music out. If a clip has its own sound it is mixed with the music, each side with its own volume. Preview three seconds of the mix, then render the whole video with the sound baked in. Free, no signup, no watermark.

Drop your clips (MP4) and pictures (JPG/PNG), or add an AI image from a prompt. Drag to reorder. Pictures show for 3 seconds by default.

Sequence
⬆ Drag & drop videos (MP4) and pictures (JPG/PNG) here
Total length: 0.0 s
Videos play in full. Pictures run for the number of seconds you set (3 by default). The first item sets the format.

API

POST /api/tools/video-music-mix/run (multipart/form-data) → JSON with outputs[].url, a zip link and a config_url.

Every run also hands you the config JSON (button above). It is the request body - POST it straight back to replay the exact generation:

curl -X POST -H 'Content-Type: application/json' \\
  --data @genbox-config-video-music-mix.json \\
  /api/tools/video-music-mix/run
For AI agents · API specs

Technical specs

Categoryvideo
Slugvideo-music-mix
Run endpointPOST /api/tools/video-music-mix/run
Content typemultipart/form-data (with file uploads) or application/json
ResponseJSON: job, notes, outputs[].url, zip, config_url
Rate limitAPI: 1 request / minute / IP. Live preview and image renders have their own separate limits, plus a short global cooldown between renders (storm protection). Over a limit you get HTTP 429 + a Retry-After header (local requests are unlimited)
Machine-readable specGET /api/tools/video-music-mix
OpenAPI 3.1 (Swagger)this tool (JSON) · all tools

Request body

Every parameter accepted by the run endpoint, in request-body order. Fields are optional unless marked required. The same schema is published as OpenAPI 3.1. Upload files with multipart/form-data; a JSON body replays a saved config.

ParameterTypeRequiredDefault / allowed valuesDescription
sequence sequence required Videos play in full. Pictures run for the number of seconds you set (3 by default). The first item sets the format.
audio file required MP3 or WAV. The video follows this track's length.
mixinfo mixinfo no
music_offset number no 0 Leave it at 0 to start the music straight away. Enter 5 and the track comes in after 5 seconds of silence - the whole video is that much longer, so you get a clean opening (dialogue, ambience, a product shot) before the music starts.
fit_mode select no auto · color · fadeout · silent Auto-match holds the last image (or freezes the last frame of a video) so the picture reaches the end of the music, and trims the video when it is the longer one.
fade_seconds number no 2 How long the music takes to fade at the end. Only used when {"fit_mode": ["fadeout"]} matches.
background_color color no #000000 The colour that fills the time the picture does not cover. Only used when {"fit_mode": ["color"]} matches.
video_volume range no 100 0 % mutes the sound that comes with the clips. 100 % is unchanged.
music_volume range no 100 100 % is the track as it is.
preview_mix mixpreview no Renders the first 3 seconds of the mix (audio only, so it is quick).
resolution select no auto · 1920x1080 · 1280x720 · 1080x1920 · 720x1280 · 1080x1080
fps select no 24 · 25 · 30

Call it from an agent

  • GET /api/tools/video-music-mix - machine-readable spec of this tool (inputs, category, API block).
  • GET /api/tools - list of every tool plus the categories.
  • POST /api/tools/video-music-mix/run - run it. Accepts multipart/form-data (with files) or a raw application/json body. Returns JSON with outputs[].url, zip and config_url.
  • The config_url JSON is the request body - POST it back to replay the same generation.
# agent example
curl -s https://genbox.eu/api/tools/video-music-mix/run \\
  -H 'Content-Type: application/json' \\
  --data @genbox-config-video-music-mix.json

Rate limits

  • Max 1 request per minute per IP on the run endpoint.
  • Over the limit you get HTTP 429 with retry_after (seconds) - wait that long and retry.
  • Higher limits and API keys are coming soon: an API key will lift the per-IP throttle. Not available yet.