HandBrake
HandBrake converts virtually any video into modern formats like H.265, AV1, and VP9 — free, open-source, and available on Windows, Mac, and Linux.
HandBrake is a battle-tested, free, open-source video transcoder that converts nearly any existing video source into formats playable on modern devices. Whether you need to re-encode a DVD collection, compress large screen recordings, or prepare videos for web streaming, HandBrake handles the entire conversion pipeline from source scanning through audio, subtitle, and video encoding.
The project is built on top of industry-standard libraries — FFmpeg for decoding and filtering, x264 and x265 for H.264 and H.265 encoding, SVT-AV1 for AV1, and libvpx for VP8/VP9. It exposes native desktop GUIs on all three major platforms (macOS Cocoa, Windows WPF, and GTK4 on Linux) as well as a full-featured command-line interface for scripting and automation.
HandBrake has been in continuous development since the early 2000s, accumulating over 13,000 commits from more than 120 contributors. It ships with dozens of built-in presets tuned for specific devices and use cases, while also supporting fine-grained manual control over every aspect of the encoding pipeline — frame rate, bitrate, resolution, audio channels, subtitle tracks, chapter markers, and more.
Hardware-accelerated encoding via NVIDIA NVENC, AMD VCE, and Intel QuickSync/oneVPL reduces encode times dramatically on supported hardware. HandBrake also offers first-class support for HDR metadata passthrough including Dolby Vision and HDR10+, making it a capable tool for modern high-quality video workflows.
What You Get
- Multi-format source support - HandBrake accepts input from DVDs, Blu-rays, MP4, AVI, MKV, MOV, and screen recordings, reading virtually any format FFmpeg can decode.
- Modern codec output - Exports to MP4, MKV, and WebM containers using H.264 (x264), H.265 (x265), AV1 (SVT-AV1), and VP8/VP9 (libvpx) encoders for optimal quality-to-size ratios.
- Cross-platform native GUIs - Native applications for Windows (WPF), macOS (Cocoa/SwiftUI), and Linux (GTK4) with consistent feature parity and platform-appropriate UX.
- Batch queue processing - Queue multiple video files for sequential conversion with shared or per-job presets, including two-pass encoding jobs.
- Hardware acceleration - Probes and uses GPU encoding via NVENC (NVIDIA), VCE/VCN (AMD), and QuickSync/oneVPL (Intel) at runtime, with automatic software fallback.
- Comprehensive preset library - Built-in JSON-driven presets covering major device targets (iPhone, Android, Apple TV, Roku, PlayStation) and quality tiers, fully editable.
- HDR metadata passthrough - Preserves Dolby Vision RPU metadata and HDR10+ dynamic metadata through the encode pipeline for compatible output files.
- Advanced subtitle handling - Burns in or passes through SRT, SSA/ASS, PGS, and closed-caption subtitle tracks with timing and style preservation.
Common Use Cases
- Ripping a DVD or Blu-ray library - A home theater enthusiast uses HandBrake to convert physical disc backups (ISO files) into H.265 MKV files, reducing storage by 60-70% with no visible quality loss.
- Optimizing screen recordings for YouTube - A content creator compresses large OBS captures into smaller H.264 MP4 files matching YouTube’s recommended specs, using the built-in ‘YouTube HQ’ preset.
- Preparing videos for mobile devices - A traveler converts a collection of MKV films into H.265 MP4 files sized for an iPhone or Android tablet using device-specific presets, fitting more videos in limited storage.
- Batch transcoding lecture recordings - A university instructor queues 50 MOV files from recorded lectures into WebM format for embedding in a learning management system, all running overnight.
- Archiving home video in modern formats - A family digitizes old VHS tapes via a capture card and uses HandBrake to re-encode the raw AVI output into H.265 for long-term storage.
- Automating encoding pipelines via CLI - A media production team calls HandBrake’s CLI in shell scripts to transcode ingest footage to delivery specs as part of a larger post-production workflow.
Under The Hood
Architecture HandBrake’s core transcoding engine, libhb, is organized as a multi-threaded pipeline of work objects communicating via bounded FIFO queues. Each work object — scan, decode, filter, encode, mux — implements a consistent Init/Work/Close interface, allowing new codecs and filters to be registered without modifying the pipeline topology. A thread-per-stage model with backpressure FIFOs ensures that slow encoder stages never block fast decoder stages indefinitely. Hardware acceleration for NVENC, VCE, and QSV/oneVPL is abstracted behind compile-time feature flags and runtime availability checks, keeping platform-specific code isolated in dedicated modules. Platform GUI layers on macOS, Windows, and Linux all bind to libhb through a shared C API, enforcing clean separation between UI and core.
Tech Stack The core encoding library is written in C with platform-specific extensions in Objective-C and Metal on macOS. The three desktop GUIs use Cocoa/SwiftUI bindings on macOS, WPF (C#) on Windows, and GTK4 on Linux. FFmpeg provides decoding, audio encoding, and filter graph layers. Dedicated encoder integrations exist for x264 (H.264), x265 (H.265/HEVC), SVT-AV1, libvpx (VP8/VP9), and Theora. Hardware acceleration paths leverage the NVIDIA NVENC API, AMD AMF, and Intel oneVPL. Subtitle rendering uses libass, container muxing uses libavformat, and the build system spans Meson for Linux, Make for the library, and MSBuild for Windows. GitHub Actions CI runs full builds across all three platforms on every push.
Code Quality The core C library lacks a formal automated unit testing framework — the test directory contains the CLI application entry point rather than a test harness, and no assertion-based tests were found. Error handling follows C idioms with return codes and explicit null checks, supplemented by an hb_log/hb_error logging system. Naming conventions are consistent throughout with hb_-prefixed public symbols and clear module boundaries. Type safety is constrained by C — raw pointer casts and void* parameters appear throughout the work object interface. The multi-platform build system adds operational complexity. GitHub Actions CI does provide continuous integration with full builds on all three platforms, catching regressions at the integration level.
What Makes It Unique HandBrake’s most distinctive capability is its unified cross-vendor hardware acceleration layer that probes NVENC, AMF, and QSV availability at runtime and falls back gracefully to software encoding — all within a single codebase. The libhb pipeline with per-stage FIFO queues allows multi-threaded filter chains to run concurrently with the decoder, a design that predates many modern media processing frameworks. Its comprehensive JSON preset system has effectively become a community reference for optimal encoding parameters across hundreds of device profiles. HandBrake also provides first-class HDR metadata passthrough (Dolby Vision RPU, HDR10+), a technically demanding feature requiring precise metadata extraction, reformatting, and re-injection across container boundaries.
Self-Hosting
HandBrake is licensed under the GNU General Public License Version 2 (GPLv2), with some files carrying GPLv2+ or LGPLv2.1+ licenses; any compiled binary is governed by GPLv2. In plain terms, GPLv2 allows free commercial use and modification, but if you distribute modified binaries, you must also distribute the corresponding source code under the same license. There is no commercial exception or proprietary licensing option. One notable constraint: the Fraunhofer fdk-aac library is intentionally excluded from default builds due to its license being incompatible with GPLv2, so HandBrake ships without AAC encoding via fdk-aac unless you compile it yourself and agree not to distribute the result.
HandBrake is a desktop and CLI application, not a server or service, so ‘self-hosting’ in the traditional sense does not apply. Running it requires installing the desktop application or compiling from source on Windows, macOS, or Linux. There is no database, no network service, and no infrastructure to maintain. Updates are handled by downloading new releases from handbrake.fr or through a system package manager; the project does not have an auto-update mechanism built into the application. Compiling from source requires a moderately complex toolchain with Meson, Make, and numerous media library dependencies, but the documentation at handbrake.fr covers this process well.
There is no paid tier, cloud version, or managed hosted alternative for HandBrake — it is entirely community-developed and distributed for free with no commercial counterpart. Support is entirely community-driven through forums and GitHub issues; there is no SLA, guaranteed response time, or professional support option. For organizations that need guaranteed turnaround on critical encoding pipelines, commercial video transcoding services such as AWS Elemental MediaConvert, Bitmovin, or Encoding.com provide the infrastructure management, scalability, and support contracts that HandBrake inherently cannot.
Related Apps
AutoGPT
Automation · Productivity · AI Assistants
Build, deploy, and run autonomous AI agents that automate complex multi-step workflows using a visual block-based graph editor.
AutoGPT
OtherDify
No Code Platforms · AI Development · Developer Tools
Visual LLM workflow platform with RAG pipelines, agent capabilities, and model management for building production AI applications.
Dify
OtherStirling PDF
Productivity · Digital Signiture
The open-source PDF platform you can run anywhere — edit, convert, sign, and automate PDFs without sending files to external servers.