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