Video Cutter (with FFmpeg)

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

  1. Download FFmpeg from https://www.gyan.dev/ffmpeg/builds/
  2. Extract the archive
  3. Add the FFmpeg bin directory to your system PATH, or place ffmpeg.exe next to the Python script

To verify installation:

ffmpeg -version

Usage

  1. Run the application:
    python main.py
    
  2. Select a video file
  3. Set segment duration or cutting parameters
  4. Choose whether to re-encode or copy streams
  5. 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.

Leave a Comment

Your email address will not be published. Required fields are marked *