DEV Community

Cover image for Building a Lightweight, Zero-Config H.265 Batch Converter with Go and FFmpeg
ServalC4t
ServalC4t

Posted on

Building a Lightweight, Zero-Config H.265 Batch Converter with Go and FFmpeg

Introduction
Video storage is a constant struggle. While H.265 (HEVC) offers incredible compression, most conversion tools are either too complex or too bloated. I wanted something simple: Drag, Drop, and Done.

That's why I built EZ265, a native Windows batch converter designed for speed and simplicity.

The Tech Stack
To keep the application snappy and portable, I chose:

Go: For its excellent concurrency (ideal for job queues) and easy Windows API integration.

lxn/walk: A native Windows GUI toolkit that keeps the binary size small and the UI responsive.

FFmpeg: The industry-standard engine, but with a twist.

Key Technical Challenges

  1. Smart Hardware Acceleration
    I implemented auto-detection for NVIDIA NVENC. The app probes the system's capabilities at runtime; if a compatible GPU is found, it uses hardware acceleration. If not, it seamlessly falls back to CPU-based x265 encoding.

  2. Native Windows Integration
    To make the workflow truly "EZ," I integrated the app directly into the Windows Shell. Users can right-click any video file in Explorer to add it to the encoding queue instantly via Registry manipulation.

Features at a Glance
Batch Processing: Queue multiple files with pause/resume support.

Single Instance IPC: Uses TCP IPC to ensure new files are sent to the already running window.

Low Priority Mode: Encodes in the background without lagging your PC.

Bilingual UI: Auto-detects Japanese/English system settings.

Open Source & Support
EZ265 is fully open-source under the MIT License. Check out the code and the build process on GitHub:

πŸ‘‰ ServalC4t/EZ265 on GitHub

If you find this tool useful for your workflow, feel free to support the development!

Top comments (0)