Drag-and-drop video clip stitching with seamless crossfade transitions and audio sync โ purpose-built for choir and orchestra video productions.
Drop your video clips, reorder them on a timeline, pick a transition, and render a seamless final video โ all from your browser.
Drop MP4, MOV, AVI, MKV, or WebM clips onto the interface. Multiple files at once.
Fade, dissolve, circle open/close, slide, pixelize, radial, and more โ with adjustable duration (0.3โ3s).
Automatic audio crossfade between clips with optional level normalization.
Export at original, 1080p, 720p, or 480p with smart letterboxing.
Real-time progress bar via SSE while FFmpeg renders the final video.
Play the assembled video in-browser or download as MP4 (H.264 + AAC).
Requires Python 3.12+ and FFmpeg. Start in under 30 seconds.
The source is at C:\Users\HomePC\choir-video-editor\ on the development machine.
FFmpeg must be installed and available on your PATH.
Navigate to http://localhost:5000 in your browser. Drag in your clips and render.
All powered by FFmpeg's xfade filter.
The FastAPI backend exposes a clean REST API.
| Endpoint | Method | Description |
|---|---|---|
/ | GET | Main UI |
/upload | POST | Upload a video clip |
/clips | GET | List uploaded clips |
/clips/{filename} | DELETE | Remove a clip |
/render | POST | Start render job |
/progress/{job_id} | GET | SSE progress stream |
/transitions | GET | List available transitions |
/output/{filename} | GET | Download rendered video |
The FFmpeg filter graph chains crossfades across N clips.