1.8 KiB
1.8 KiB
MergeDrop
A self-hosted, drag-and-drop video merger. Drop clips → reorder → click Merge & Build MP4 → download a single ready-to-share file.
Why this exists
Most "merge video" tools are bloated desktop apps, paid SaaS, or sketchy converter sites that re-upload your footage to who-knows-where. MergeDrop is the opposite:
- 100% self-hosted, runs in a single container on your Runtipi
- No accounts, no telemetry, no third-party upload caps
- Mixed formats / resolutions / framerates → normalized to a clean 1080p30 h.264 + AAC MP4
Features
- Drag-and-drop upload, drag-to-reorder, drag-to-remove
- Live ffmpeg progress (percentage + tail of stderr) per merge job
- In-browser preview of the merged result, then one-click download
- Built-in janitor — old outputs are auto-deleted after a configurable retention window
Supported inputs
mp4, mov, mkv, avi, webm, m4v, flv, wmv, mpg/mpeg (mixed codecs and dimensions are normalized via two-pass ffmpeg pipeline).
Output presets
1080p (default), 720p, 4K, vertical 9:16, square 1:1 — selectable per job from the UI.
Configuration
| Setting | Default | Description |
|---|---|---|
| Max files per merge | 20 |
Hard cap per job |
| Max per-file size | 2 GiB |
Per-upload limit (bytes) |
| Output retention | 24h |
Janitor sweeps merged MP4s older than this |
Volumes (persistent)
${APP_DATA_DIR}/data/uploads— staged source clips${APP_DATA_DIR}/data/outputs— merged MP4 results${APP_DATA_DIR}/data/thumbs— generated upload thumbnails
Tech stack
- Backend: FastAPI +
ffmpegsubprocess (async, streamed progress) - Frontend: React 19 + Tailwind +
@dnd-kit+react-dropzone - Single container, single port, no database