A sleek, high-performance video encoding GUI built with Rust and Slint. This tool provides a modern interface for batch converting videos using FFmpeg with a focus on HEVC (H.265) encoding.
- Modern Apple-style Light Theme: A clean and premium interface designed for clarity and ease of use.
- Native Windows Drag & Drop: Seamlessly add files and folders by dragging them into the app window (implemented via low-level
WndProcsubclassing for maximum compatibility). - HEVC (H.265) Optimization: Default configurations tailored for high-quality, low-size H.265 encoding.
- Detailed Progress Tracking: Real-time parsing of FFmpeg logs to show per-file percentage, encoding speed (x speed), and live bitrate.
- Batch Processing: Queue multiple files and folders for sequential encoding.
- Customizable Options: Easy adjustment of CRF (Quality), output suffix, and target directory.
- FFmpeg: You need
ffmpeg.exeinstalled on your system.- The app will automatically look for
ffmpeg.exein its own directory. - If not found, it will search your system
PATH. - You can also manually select the path within the app.
- The app will automatically look for
You can download the latest version from the Releases Page.
- Clone the repository:
git clone https://github.com/kirinonakar/VideoEncoder.git cd VideoEncoder - Ensure you have Rust installed.
- Build and run the project:
cargo run --release
- Window Subclassing: Uses
windows-sysandSetWindowLongPtrWto hook into the Windows message loop (WM_DROPFILES), bypassing Slint's default D&D constraints to support administrator environments. - Asynchronous Processing: Leverages
tokiofor non-blocking FFmpeg execution and log parsing. - Declarative UI: Built using the Slint UI framework for a responsive and lightweight experience.
This project is licensed under the MIT License - see the LICENSE file for details.
