Add mergedrop: drag-and-drop video merger (ffmpeg + FastAPI + React)
This commit is contained in:
46
apps/mergedrop/metadata/description.md
Normal file
46
apps/mergedrop/metadata/description.md
Normal file
@@ -0,0 +1,46 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user