A powerful and user-friendly FFmpeg GUI application
δΈζθ―΄ζ β’ Features β’ Installation β’ Usage β’ Development β’ Contributing
- Support for 50+ video/audio format conversions
- Quick presets (Web optimized, High quality, Fast conversion, etc.)
- Custom codecs, bitrates, resolutions
- Batch conversion support
- Multiple compression presets (Light, Medium, Heavy compression)
- CRF quality control (6 quality levels)
- Target file size compression
- H.265/HEVC efficient compression
- Task queue system
- Real-time progress display (speed, ETA, FPS, bitrate)
- Pause/resume/cancel tasks
- Batch processing management
- FFmpeg automatic detection and download
- File drag-and-drop upload
- Media information preview
- Dark/light theme toggle (system-aware)
- Detailed error messages
- Comprehensive logging system
Download the latest version for your platform:
Available platforms:
- macOS: DMG and ZIP packages (Apple Silicon & Intel)
- Windows: EXE installer (x64 & ARM64)
- Linux: AppImage and .deb packages
π‘ macOS users: If you encounter security warnings, you may need to remove the quarantine attribute:
sudo xattr -r -d com.apple.quarantine /Applications/FFmpeg\ GUI.app
The app will automatically detect FFmpeg. If not installed, it will prompt to download (automatically downloaded to app data directory).
- Click the "Convert" tab
- Drag & drop or select files to convert
- Choose output format
- (Optional) Adjust encoding parameters or select presets
- Click "Start Conversion"
- Click the "Compress" tab
- Upload video file
- Select compression mode:
- Quick Presets: Choose predefined schemes
- CRF Quality: Select quality level
- Target Size: Set target file size
- Custom: Manual parameter configuration
- Click "Start Compression"
- Click the "Queue" tab
- View all task statuses
- Manage tasks (pause, resume, cancel)
- View real-time progress information
- User Guide - Complete feature documentation
- Framework: Electron 38 + React 19 + TypeScript 5
- Build Tool: Vite 7
- UI Framework: Tailwind CSS 4 + ShadCN UI
- Router: React Router 7
- Testing: Vitest + Testing Library
- Packaging: Electron Builder
- Node.js >= 18.x LTS
- npm >= 8.x
- Git
git clone https://github.com/chinnsenn/FFmpeg-GUI.git
cd FFmpeg-GUI
npm install# Start development server with hot reload
npm run dev# Type checking
npm run type-check
# Run tests
npm test
# Build app (with installers)
npm run build
# Build directory only (quick test)
npm run build:dirFFmpeg-GUI/
βββ src/
β βββ main/ # Electron main process
β β βββ ffmpeg/ # FFmpeg related functions
β β βββ ipc/ # IPC handlers
β β βββ utils/ # Utility functions
β βββ renderer/ # React renderer process
β β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ router/ # Routing configuration
β β βββ lib/ # Utility libraries
β βββ shared/ # Shared code and types
β βββ constants.ts # Constant definitions
β βββ types.ts # TypeScript types
β βββ format-presets.ts # Format presets
βββ build/ # Build resources
βββ docs/ # Documentation
βββ release/ # Build output
βββ dist-electron/ # Compiled output
# Run all tests
npm test
# Test coverage
npm run test:coverage
# Test UI
npm run test:ui- Contributing Guide - Code contribution guidelines
- Build Guide - Multi-platform build instructions
Contributions are welcome! Please check the Contributing Guide for information on how to participate in the project.
- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit changes (
git commit -m 'feat: Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Create a Pull Request
Follow Conventional Commits:
feat: New feature
fix: Bug fix
docs: Documentation update
style: Code formatting (no functional changes)
refactor: Refactoring
test: Testing related
chore: Build/tool related
- Basic framework setup
- FFmpeg integration
- Format conversion functionality
- Video compression functionality
- Task queue management
- Real-time progress display
- Performance optimization
- Error handling and logging
- Unit testing
- Multi-platform packaging
- Modern Minimalist UI refactor
- Dark mode support
- Release v1.0.0
Current Progress: 21/22 tasks completed (95%)
This project is licensed under the MIT License - see the LICENSE file for details
- FFmpeg - Powerful multimedia processing tool
- Electron - Cross-platform desktop app framework
- React - User interface library
- ShadCN UI - Beautiful UI components
- Issues: GitHub Issues
- Discussions: GitHub Discussions