Create compelling videos by combining your images and video clips on a defined timeline. This tool automatically applies smooth zoom effects to images and handles looping videos with optional smooth crossfades between repetitions. Simply upload your media, set the timing, provide background audio and subtitles, and generate your final MP4 video.
Automate video creation by sending a POST request with a JSON payload to this URL: /ffmpeg/index.php
POST
Content-Type: application/json
{
"duration": 30.5, "loop_xfade": 0.8, "output_name": "api_video",
"media_segments": [ { "original_name": "intro.png", "start_time": 0, "end_time": 5, "base64_data": "iVB..." }, { "original_name": "clip1.mp4", "start_time": 5, "end_time": 15.2, "base64_data": "AAA..." } ],
"audio_file_info": { "original_name": "bg.mp3", "base64_data": "SUQz..." },
"srt_file_info": { "original_name": "subs.srt", "base64_data": "MSA..." }
}
Provide complete base64 strings for all base64_data
fields.
{ "status": "success", "message": "Video successfully created!", "download_url": "...", "output_filename": "...", "details": "..." }
{ "status": "error", "message": "Input validation errors.", "errors": [ "Segment 2(...): Invalid time.", "..." ], "details": null }
Base64 for large files can be inefficient and hit server limits.
curl
CommandSave JSON to request.json
, then:
curl -X POST -H "Content-Type: application/json" -d @request.json http://experimentaldata.co.uk/ffmpeg/index.php
Overlaps? No. End time <= next start time.
Gaps? Filled with black.
Loop X-Fade? Fade duration between video loops (0 = hard cut).
Files Kept? No. Source files deleted post-processing. Final MP4 is kept.
Filename Exists? Error. Choose a new name or delete existing file.
Slow? Yes. Video processing is CPU-intensive.
Use this tool responsibly and at your own risk. Ensure you have the rights to all uploaded media. Operators are not liable for generated content. Source files are deleted; the final video output is stored on the server.