Free & Open Source — by RZSmile
Powered by ffmpeg • Python • tkinter
EventCut is a Windows tool that automatically assembles and trims video files by removing silence at the beginning and end of recordings. Built for event organizers, videographers, and editors who work with raw footage that has dead air at the head and tail.
The app detects the first and last significant sound across your files, trims cleanly, and merges everything into a single MP4 — without re-encoding (direct stream copy via ffmpeg).
- Drag & drop video files directly into the file list
- Auto-sort by filename on import
- Manual reordering with ▲ ▼ buttons
- Smart audio detection of first and last sound via pydub
- Precise trimming of start and end with configurable safety margin
- Multi-file assembly into a single MP4 (stream copy, no re-encoding)
- Waveform preview with cut point visualization
- Live processing log with progress bar
- Auto-generated text report saved alongside the output file
- Auto-opens Explorer on the created file when done
- Clean stop of an in-progress job
- Bilingual UI — English / French (chosen at install time)
All adjustable from the interface:
| Parameter | Default | Description |
|---|---|---|
| Silence threshold | -35 dBFS | Below this level, audio is considered silent |
| Minimum silence duration | 5 s | Minimum duration for a silence to be detected |
| Safety margin | 5 s | Padding kept before/after the first/last sound |
.mp4 .m4v .mov .mkv .mts .m2ts .avi .wmv .flv .ts
Processing runs in up to 3 steps for multi-file jobs:
- Analyse first file — extract mono 16 kHz audio, detect first non-silent segment → start cut point
- Analyse last file — same process → end cut point
- ffmpeg export:
- 1 file: direct
-ss/-tostream copy - N files: trim first file, trim last file, concatenate all parts (including untouched middle files) via the
concat demuxer
- 1 file: direct
A _report.txt file is saved next to the output with raw duration, final duration, cut points, and the parameters used.
Download and run Setup_EventCut.exe.
- Choose your language at startup (English / Français)
- ffmpeg is bundled — no additional installation required
- Optional desktop shortcut
- Clean uninstall via Windows Settings → Apps
- Installs to
%LOCALAPPDATA%\EventCut— no admin rights required
EventCut/
├── nettoyer_video.py # Main application (UI + processing engine)
├── generate_icon.py # Generates eventcut.ico (4x supersampling, stdlib only)
├── make_nsi.py # Generates the NSIS installer script (installer.nsi)
├── build_installer.bat # Full build script (6 steps)
└── README.md
build_installer.bat automates the following steps:
| Step | Action |
|---|---|
| 1 | Install Python dependencies (pydub, numpy, audioop-lts, pyinstaller, tkinterdnd2) |
| 2 | Generate eventcut.ico via generate_icon.py |
| 3 | Compile the app to a Windows executable via PyInstaller (--onedir mode) |
| 4 | Download and extract ffmpeg (~70 MB, BtbN win64-gpl build) |
| 5 | Check NSIS plugins |
| 6 | Generate the NSIS script via make_nsi.py and compile Setup_EventCut.exe |
Build requirements: Python 3.x and NSIS (auto-installed via winget if not found).
pydub
numpy
audioop-lts
pyinstaller
tkinterdnd2
ffmpeg is bundled inside the installer and is not a Python dependency.
The UI language is chosen once at install time and written to eventcut_lang.txt next to the executable. The app reads this file on startup and loads the matching translation.
Available languages: English · Français
eventcut.ico is generated entirely in pure Python (stdlib only — no Pillow or external dependency) by generate_icon.py. It uses 4x supersampling for sharp rendering and embeds 4 resolutions: 256×256 (PNG), 48×48, 32×32, 16×16.
The logo depicts stylized audio bars with a cut tool, on a dark navy background.
Contributions, issues and feature requests are welcome!
Feel free to open an issue or submit a pull request.
Ideas that would make EventCut even better:
- Additional output formats (e.g. MKV, ProRes)
- Custom silence detection profiles per format
- Batch output (one trimmed file per input)
- macOS / Linux port
This project is licensed under the MIT License — see the LICENSE file for details.
Developed by RZSmile.