Skip to content

kirinonakar/VideoEncoder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VideoEncoder FFmpeg Wrapper

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.

screenshot1

Key Features

  • 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 WndProc subclassing 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.

Prerequisite

  • FFmpeg: You need ffmpeg.exe installed on your system.
    • The app will automatically look for ffmpeg.exe in its own directory.
    • If not found, it will search your system PATH.
    • You can also manually select the path within the app.

Getting Started

📥 Download

You can download the latest version from the Releases Page.

Manual build

  1. Clone the repository:
    git clone https://github.com/kirinonakar/VideoEncoder.git
    cd VideoEncoder
  2. Ensure you have Rust installed.
  3. Build and run the project:
    cargo run --release

Technical Implementation Highlights

  • Window Subclassing: Uses windows-sys and SetWindowLongPtrW to hook into the Windows message loop (WM_DROPFILES), bypassing Slint's default D&D constraints to support administrator environments.
  • Asynchronous Processing: Leverages tokio for non-blocking FFmpeg execution and log parsing.
  • Declarative UI: Built using the Slint UI framework for a responsive and lightweight experience.

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

VideoEncoder

Resources

License

Stars

Watchers

Forks

Packages