This guide walks you through setting up a local development environment for VideoSquash Pro (Desktop Edition).
- System Requirements
- Prerequisites
- Quick Start
- Detailed Setup Steps
- Running the App
- Building the Installer
- Project Structure
- Troubleshooting
- Development Tips
- OS: Windows 10 or later (64-bit)
- RAM: 4 GB
- Disk Space: 2 GB for development environment
- GPU: Optional, but recommended for faster video encoding
- OS: Windows 11 (64-bit)
- RAM: 8 GB or more
- Disk Space: 5+ GB
- GPU: NVIDIA or AMD with hardware video encoding support
Before starting development on VideoSquash Pro, ensure you have the following installed:
- Download: https://nodejs.org/ (LTS version recommended)
- Verify Installation:
node --version npm --version
- VideoSquash Pro requires Node.js 16+ and npm 7+
- Download: https://git-scm.com/
- Verify Installation:
git --version
- Download: https://www.gyan.dev/ffmpeg/builds/
- Which Version: Click "Release" → "Essentials" build (static)
- Extract: Unzip the archive to a temporary location
- Copy Binaries: Extract
ffmpeg.exeandffprobe.exeand place them in theassets/folder of this project - Verify: Check that
assets/ffmpeg.exeandassets/ffprobe.exeexist
Why required? The app uses native FFmpeg to handle video compression. The binaries are not included in the repo due to their large size (~200 MB).
If you have all prerequisites installed, clone and run:
git clone https://github.com/TutorialsAndroid/video-squash-pro.git
cd video-squash-pro
npm install
npm startNote: Make sure
ffmpeg.exeandffprobe.exeare in theassets/folder before runningnpm start.
- Visit https://nodejs.org/ and download the LTS version
- Run the installer
- Accept the default options (the installer will add Node.js to your PATH)
- Open a new Command Prompt or PowerShell and verify:
node --version npm --version
- Visit https://git-scm.com/
- Download the Windows installer
- Run the installer and accept the default options
- Open a new Command Prompt and verify:
git --version
- Open https://www.gyan.dev/ffmpeg/builds/ in your browser
- Click the "release" link under the "Essentials" section
- A
.7zfile will download (approximately 50 MB)
- Install 7-Zip from https://www.7-zip.org/ (if not already installed)
- Right-click the downloaded
.7zfile and select "7-Zip" → "Extract Here" - Navigate into the extracted folder and find the
bin/subfolder
- Navigate to your cloned
video-squash-prodirectory - Locate the
assets/folder (create it if it doesn't exist) - Copy
ffmpeg.exeandffprobe.exefrom thebin/folder intoassets/
Example:
video-squash-pro/
├── assets/
│ ├── ffmpeg.exe
│ ├── ffprobe.exe
│ └── [other files]
├── main.js
├── package.json
└── ...
Open Command Prompt in the video-squash-pro directory and run:
.\assets\ffmpeg.exe -version
.\assets\ffprobe.exe -versionBoth should print version information without errors.
git clone https://github.com/TutorialsAndroid/video-squash-pro.git
cd video-squash-pronpm installThis installs:
- Electron – the desktop app framework
- electron-builder – for packaging the installer
- jszip – for creating ZIP archives of compressed videos
List the installed packages:
npm listYou should see something like:
video-squash-pro@1.1.9
├── electron@28.x.x
├── electron-builder@24.x.x
└── jszip@3.10.1
npm startThis will:
- Launch the Electron app
- Open the VideoSquash Pro window
- Load the UI from
index.htmlandpreload.js
- Reload the app: Press
F5orCtrl+Shift+R - Open developer tools: Press
Ctrl+Shift+I(useful for debugging) - Close the app: Click the close button or press
Alt+F4
To create a Windows installer (NSIS format):
npm run buildThis will:
- Bundle the app with Electron
- Include FFmpeg and ffprobe binaries
- Create an NSIS installer in the
dist/folder
Output:
dist/
├── VideoSquash Pro Setup 1.1.9.exe (installer)
└── [other build artifacts]
The installer can then be distributed to users.
video-squash-pro/
├── assets/ # Static assets
│ ├── ffmpeg.exe # FFmpeg binary (add manually)
│ ├── ffprobe.exe # ffprobe binary (add manually)
│ ├── icon.ico # App icon
│ └── [other assets]
├── renderer/ # Frontend code
│ ├── index.html # Main UI
│ ├── styles.css # Styling
│ └── script.js # UI logic
├── dist/ # Build output (generated)
├── main.js # Electron main process
├── preload.js # IPC bridge / security context
├── package.json # Project metadata & scripts
├── package-lock.json # Dependency lock file
├── README.md # Project documentation
├── SETUP.md # This file
└── LICENSE # MIT License
- main.js – Electron main process; spawns FFmpeg, manages windows
- preload.js – Secure IPC bridge between renderer and main process
- renderer/ – HTML/CSS/JS for the user interface
- assets/ – Static files, including FFmpeg binaries
Cause: The assets/ffmpeg.exe file is missing or in the wrong location.
Solution:
- Download FFmpeg from https://www.gyan.dev/ffmpeg/builds/
- Extract the archive and locate
ffmpeg.exeandffprobe.exe - Copy both files to the
assets/folder in this project - Restart the app
Cause: Dependencies not installed correctly.
Solution:
rm -r node_modules package-lock.json
npm install
npm startCause: FFmpeg binaries not in assets/ folder during build.
Solution:
Ensure assets/ffmpeg.exe and assets/ffprobe.exe exist, then run:
npm run buildCause: FFmpeg permissions or corrupted binary.
Solution:
- Check that
ffmpeg.exehas execute permissions - Verify the binary by running
.\assets\ffmpeg.exe -versionin Command Prompt - Re-download FFmpeg from https://www.gyan.dev/ffmpeg/builds/ and replace the files
Cause: Electron not installed or npm PATH issue.
Solution:
npm install -g electron
npm install # Re-install locally
npm startThe app doesn't auto-reload on file changes. To reload:
- Press
F5orCtrl+Shift+Rin the app window
Press Ctrl+Shift+I to open Chrome DevTools:
- Inspect elements in the Elements tab
- View logs in the Console tab
- Debug JavaScript in the Sources tab
Before distributing, test the installer:
npm run build
# Open dist/VideoSquash*Setup*.exe and test the installationTo add a new npm package:
npm install package-nameThen restart the app with npm start.
- UI changes: Edit files in
renderer/ - Process logic: Edit
main.js - IPC communication: Edit
preload.js
- ✅ Complete the setup steps above
- ✅ Run
npm startand verify the app launches - ✅ Test basic compression with a small video file
- ✅ Explore the codebase and make your changes
- ✅ Build and test the installer with
npm run build
- GitHub Issues: https://github.com/TutorialsAndroid/video-squash-pro/issues
- FFmpeg Docs: https://ffmpeg.org/documentation.html
- Electron Docs: https://www.electronjs.org/docs
Last Updated: 2026-05-13
Version: 1.1.9
License: MIT