@@ -59,16 +59,31 @@ A browser-first MP4 merger built with Vite, React, TypeScript, `@dnd-kit`, and `
5959
6060## Features
6161
62- - ** Drag & Drop Upload** – Add multiple ` .mp4 ` files via picker, drop zone, or paste.
62+ - ** Drag & Drop Upload** – Add multiple video files ( ` .mp4 ` , ` .mov ` , ` .webm ` , ` .mkv ` ) via picker, drop zone, or paste.
6363- ** Smart Auto-Sort** – Clips are automatically ordered by file modification time.
6464- ** Clip Inspector** – See duration, resolution, aspect ratio, and audio stream info per clip.
6565- ** Sortable Timeline** – Reorder clips with mouse or keyboard via ` @dnd-kit ` .
6666- ** Trim Segments** – Cut in/out points on any clip before merging.
67- - ** Flexible Output** – Choose from common output aspect ratios (16:9, 9:16, 1:1, 4:3, etc.).
67+ - ** Split Clip** – Split a clip into two independent clips at the playhead.
68+ - ** Duplicate & Rename** – Duplicate any clip, or double-click its name to rename it.
69+ - ** Undo / Redo** – Step back and forward through timeline edits (` Ctrl/Cmd+Z ` , ` Ctrl/Cmd+Shift+Z ` ).
70+ - ** Per-Clip Volume & Mute** – Adjust or silence individual clips.
71+ - ** Per-Clip Speed** – Slow down or speed up a clip from 0.5x–2x.
72+ - ** Fade In / Out** – Add audio+video fades per clip.
73+ - ** Color Adjustment** – Brightness, contrast, and saturation per clip.
74+ - ** Watermark Overlay** – Burn in a logo image at any corner or center, with adjustable opacity.
75+ - ** Background Music** – Mix in a looping music track under the merged audio.
76+ - ** GIF Export** – Convert the merged result to an animated GIF.
77+ - ** Flexible Output** – Choose from common output aspect ratios (16:9, 9:16, 1:1) plus ready-made social presets (Instagram Reel, TikTok, YouTube Shorts, Instagram Story, Square Post).
6878- ** Aspect Ratio Fit** – Mismatched source frames are placed over a blurred background to fill the canvas.
6979- ** Audio Normalization** – Clips without audio receive a silent AAC track so mixed projects merge cleanly.
7080- ** Hybrid Engine** – Falls back to native backend FFmpeg for larger projects; browser FFmpeg for everything else.
71- - ** 100% Private** – Files are processed locally in the browser. Nothing is uploaded to a server.
81+ - ** Autosave & Restore** – Project settings are autosaved locally; reload the app and restore/relink clips.
82+ - ** Live ETA** – See an estimated time remaining while merging.
83+ - ** Error Log Export** – Download a text log of everything that went wrong during a session.
84+ - ** Keyboard Shortcuts Cheat Sheet** – Press ` ? ` for a quick reference.
85+ - ** Light & Dark Theme** – Toggle from the toolbar; respects your OS preference by default.
86+ - ** 100% Private** – Files are processed locally in the browser by default. Nothing is uploaded to a server unless you opt into backend mode.
7287- ** Modern UI** – React 18 + Lucide icons, accessible keyboard interactions.
7388
7489---
@@ -171,6 +186,18 @@ ffprobe -version
171186
172187## Getting Started
173188
189+ ### Quick start scripts
190+
191+ Cross-platform launcher and build scripts are included so you don't need to remember npm commands:
192+
193+ | Platform | Start dev servers | Build for production |
194+ | --------------- | ------------------ | --------------------- |
195+ | Windows | ` start.bat ` | ` build.bat ` |
196+ | macOS | ` start.command ` | ` build.command ` |
197+ | Linux / macOS | ` ./start.sh ` | ` ./build.sh ` |
198+
199+ Each script checks for Node.js, runs ` npm install ` if ` node_modules ` is missing, and then starts the dev servers or produces a production build in ` dist/ ` .
200+
174201Start both the frontend and backend dev servers in one command:
175202
176203``` bash
0 commit comments