🎬 A modern JavaFX-based GUI frontend for FFmpeg, enabling batch video/audio transcoding, resolution/bitrate customization, and stream separation with ease.
- Drag-and-drop video import
- Per-file format, resolution, and bitrate settings
- Audio/video-only output mode
- Realtime progress tracking for each task
- Command preview panel (one-click copy)
- Multi-threaded batch processing
- Persistent user settings (FFmpeg path)
- Make sure Java 17+ is installed.
- Download or clone this repository.
- Run
MainApp.javafrom your IDE or usejavafx:runif using Maven. - First-time users need to set the FFmpeg executable path in Settings.
- Java 17
- JavaFX
- MaterialFX (for modern UI components)
- FFmpeg (external dependency)
MainController.java— GUI logic and event bindingCommandBuilder.java— Chainable FFmpeg command generatorFFmpegController.java— Process execution and progress parsingFileTask.java— Model class for each transcoding jobstyle.css— Light blue UI themeMainView.fxml— Main layout file
ffmpeg -y -i input.mp4 -vn -s 1280x720 -b:v 1000k -f mp3 ./output/input_audio.mp3