Files
runtipi/apps/mergedrop/metadata/description.md

47 lines
1.8 KiB
Markdown

# 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 + `ffmpeg` subprocess (async, streamed progress)
- Frontend: React 19 + Tailwind + `@dnd-kit` + `react-dropzone`
- Single container, single port, no database