Skip to content

lookasdev/ffmpeg-ui

Repository files navigation

Video Compressor

Electron app to compress and trim videos. Uses FFmpeg for compression and smartcut for trimming. No Python required after install.

Features

  • Compress: Target size (10MB, 100MB, 250MB, custom), 30/60 fps, quality presets
  • Trim: Keep a segment (start–end seconds) with minimal recoding via smartcut
  • Play: Preview original, compressed, or trimmed output via ffplay

Requirements (for building)

  • Node.js and npm
  • Python (for building compress.exe and trim.exe)
  • bin/ folder with:
    • ffmpeg.exe, ffprobe.exe, ffplay.exe
    • smartcut.exe (run npm run get-smartcut to fetch)

Quick start

npm install
npm run get-smartcut   # if bin/smartcut.exe is missing
npm start

Building the installer

npm run dist

This will:

  1. Run predist checks (and fetch smartcut into bin/ if needed)
  2. Build compress.exe and trim.exe from Python
  3. Package the app with electron-builder

The installer is in dist/.

Project structure

Path Purpose
main.js Electron main process
index.html UI
compress.py / trim.py Sources for the exes
scripts/ Build helpers (predist, get-smartcut, copy-*)
bin/ ffmpeg, ffprobe, ffplay, smartcut

See FILES.md for details. See SIZE.md for reducing installer size.

Output filename

Before compressing or trimming, the app checks if the output file already exists. If it does, a warning is shown and the operation is not started—change the output filename to avoid overwriting.

License

MIT

About

ffmpeg ui app and video trimming tools

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors