Join, merge, and concatenate video clips into one file. A small, windowed
Windows app (with a matching command line) that wraps ffmpeg: point it at a folder
of clips and get one clean video back. No timeline editor, no command line needed -
just stitch a batch of clips end to end. Basically cat for video files, with a GUI.
Handles MP4, MPEG / MPG, MOV, MKV, WebM, AVI, and GIF.
- Orders clips the way a human means them:
clip_2beforeclip_10(natural/numeric sort), or by modified-time. - Optional range filter by the trailing number in the filename (e.g. clips
27-32out of a folder of01-32). - Scales + pads mismatched clips onto a common canvas so the concat never fails on a size change.
- Default output is a universal H.264 MP4;
--copyis an instant, lossless path for already-uniform clips.
- Download
ClipStitch-Setup-1.0.1.exefrom the releases page. - Run it. It installs to your account (no admin required), adds a Start Menu entry, and offers a desktop shortcut.
- Launch ClipStitch from the Start Menu.
Requirement: ffmpeg must be available (ClipStitch shells out to ffmpeg / ffprobe). If it's missing, the app offers to install it for you via winget, or points you to the download page.
To remove: Settings -> Apps, or "Uninstall ClipStitch" in the Start Menu group.
- Browse... to your clips folder.
- Adjust Pattern (default
*.webm) - e.g.*.mp4,clip_*.mov. - Optional: a Range (two numbers) to take only part of a sequence.
- Optional: Save as... an output path (otherwise it writes
stitched_<folder>_<timestamp>.mp4into the source folder). - Fast copy for lossless instant joins when every clip shares one codec / size / fps.
- Stitch. Watch the log; Open output folder when it's done.
python clipstitch.py FOLDER [options]
python clipstitch.py "C:\clips" --pattern "*.mp4" --range 27 32
python clipstitch.py .\clips --copy # instant, lossless (uniform sources)
python clipstitch.py .\clips --out movie.mp4 --crf 16
python clipstitch.py .\clips --dry-run # print the plan + ffmpeg command, run nothing
| Option | Meaning |
|---|---|
--pattern GLOB |
which files to take (default: common video extensions) |
--order name|mtime |
ordering (default name, natural/numeric) |
--range A B |
keep clips whose trailing number is in [A, B] |
--out PATH |
output file (default stitched_<folder>_<timestamp>.mp4) |
--copy |
stream-copy concat: instant, lossless, needs uniform clips (forces .mkv) |
--width / --height / --fps |
output canvas (default: first clip's) |
--crf N |
x264 quality, lower = better (default 18) |
--dry-run |
print the plan and exact ffmpeg command, run nothing |
Needs Python 3.10+ and Windows. One command does everything (venv, deps, icon, frozen exe, installer - it installs Inno Setup via winget if missing):
powershell -ExecutionPolicy Bypass -File .\build.ps1
Output: installer\Output\ClipStitch-Setup-1.0.1.exe. Use -SkipInstaller to stop
after the frozen dist\StitchClips\StitchClips.exe.
Layout:
clipstitch.py engine + CLI (importable: clipstitch.stitch())
clipstitch_gui.py Tk GUI (frozen into StitchClips.exe)
make_icon.py generates assets/ClipStitch.ico
ClipStitch.spec PyInstaller build spec (windowed, onedir)
installer/ Inno Setup script
build.ps1 one-shot reproducible build
If you searched for any of these, you're in the right place - this is exactly what ClipStitch does:
- join / merge / combine / concatenate MP4 files into one
- stitch video clips together into a single video
cat/ append MPEG, MPG, MOV, MKV, or WebM clips- an ffmpeg concat GUI for Windows - no command line
- merge a whole folder of videos without a video editor
Suggested GitHub topics: ffmpeg · video · mp4 · mpeg · concatenate · merge-videos · video-merger · clip-stitcher · video-concatenation · gui · windows
MIT - see LICENSE. Free and open-source.