A desktop GUI application for precise video cutting and optional re-encoding, built with Python, Tkinter, OpenCV, and FFmpeg.
The application allows you to visually navigate through a video frame-by-frame, mark multiple segments, reorder or remove them, and export the result either without re-encoding (stream copy) or with full re-encoding (e.g. to MP4 / H.264 / HEVC).
GitHub with code: github.com/a7in/a7-video-cutter
Key Idea
This tool is designed for situations where:
- You need frame-accurate cutting
- You want to extract multiple segments from a single video
- You want to concatenate segments in a chosen order
- You want control over whether the video is copied losslessly or fully re-encoded
FFmpeg is used for all actual media processing; the application provides a convenient visual interface on top of it.
Features
- Cut video files into multiple segments
- Supports most video formats supported by FFmpeg
- Optional video re-encoding using NVIDIA NVENC (H.265 / HEVC)
- Audio re-encoding to AAC
- Automatic handling of long videos
- Progress output via FFmpeg logs
- Error handling with user-friendly messages
- Simple and lightweight Tkinter-based GUI
- Works on Windows
Requirements
- Windows OS
- Python 3.9+
- FFmpeg (static build recommended)
- NVIDIA GPU with NVENC support (optional, for hardware encoding)
Installation
1. Clone the repository
git clone https://github.com/your-username/video-cutter.git
cd video-cutter
2. Install Python dependencies
pip install -r requirements.txt
If requirements.txt is not present, the application only relies on standard Python libraries:
- tkinter
- subprocess
- threading
- os
FFmpeg Setup
- Download FFmpeg from https://www.gyan.dev/ffmpeg/builds/
- Extract the archive
- Add the FFmpeg
bindirectory to your systemPATH, or placeffmpeg.exenext to the Python script
To verify installation:
ffmpeg -version
Usage
- Run the application:
python main.py - Select a video file
- Set segment duration or cutting parameters
- Choose whether to re-encode or copy streams
- Start the cutting process
The application will process the video and save the resulting segments to the output directory.
Hardware Encoding (NVENC)
If an NVIDIA GPU is available, the application uses hevc_nvenc for fast GPU-based encoding.
Example FFmpeg parameters used internally:
-c:v hevc_nvenc -preset p5 -rc vbr -cq 19
Known Limitations
- Windows-only (tested)
- Requires external FFmpeg installation
- No built-in video preview
License
This project is provided as-is for personal or educational use.

