Установка HandBrake на Debian 13, 12, 11: полное руководство

HandBrake — это мощный видеоконвертер с графическим интерфейсом (и командной строкой) для транскодирования видео из одного формата в другой (например, MKV → MP4, добавление субтитров, сжатие, изменение разрешения). Он использует FFmpeg под капотом, но предоставляет удобный интерфейс и готовые пресеты.

В этом руководстве я покажу три способа установки HandBrake на Debian:

  1. APT — из официальных репозиториев (просто, но версия зависит от релиза)
  2. Flatpak — актуальная версия из Flathub (рекомендуется для десктопа)
  3. Сборка из исходников — для опытных пользователей
МетодВерсияОбновленияДля кого
APTDebian 13: 1.9.2;
Debian 12: 1.6.1;
Debian 11: 1.3.1
Через
apt upgrade
Те, кому нужна
стабильная версия из
репозитория
Flatpak
(рекомендуемый)
Последняя (1.11.x+)Через
flatpak update
Большинство
десктопных
пользователей
Сборка из
исходников
Последняя (1.11.x+)Вручную
(скрипт-помощник)
Опытные
пользователи,
которым нужна самая
свежая версия

Оглавление

Предварительные требования

Перед установкой убедитесь, что:

  • У вас есть графическая среда (GNOME, KDE, Xfce) — для GUI-версии
  • Вы имеете права sudo (администратора)

⚠️ ВАЖНО: Проверьте права sudo перед установкой

Если вы не уверены, есть ли у вашего пользователя права администратора, выполните в терминале:

sudo whoami

Что делает: sudo — выполняет команду от имени суперпользователя; whoami — показывает имя текущего пользователя.

Ожидаемый вывод в терминале:

root

❌ Если выводит is not in the sudoers file — сначала пройдите наше руководство по настройке sudo.


Способ 1: Установка HandBrake через APT

Этот способ наиболее прост, но версия зависит от вашего релиза Debian.

Шаг 1: Обновите систему

sudo apt update && sudo apt upgrade -y

Шаг 2: Установите HandBrake GUI и CLI

sudo apt install -y handbrake handbrake-cli

Что делает: Устанавливает графическую версию (handbrake) и утилиту командной строки (handbrake-cli).

Шаг 3: Проверьте установку

dpkg-query -W -f='${db:Status-Abbrev} ${binary:Package} ${Version}\n' handbrake handbrake-cli

Ожидаемый вывод: ii handbrake 1.x.x и ii handbrake-cli 1.x.x

command -v ghb
command -v HandBrakeCLI

Ожидаемый вывод: /usr/bin/ghb и /usr/bin/HandBrakeCLI


Способ 2: Установка HandBrake через Flatpak (рекомендуемый)

Flatpak даёт самую свежую версию HandBrake на любой версии Debian.

Шаг 1: Установите Flatpak (если ещё не установлен)

Если Flatpak не установлен, сначала пройдите наше руководство по установке Flatpak на Debian.

Шаг 2: Добавьте репозиторий Flathub (если ещё не добавлен)

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Шаг 3: Установите HandBrake

sudo flatpak install flathub fr.handbrake.ghb

Шаг 4: Проверьте установку

flatpak info fr.handbrake.ghb

Ожидаемый вывод: ID: fr.handbrake.ghb, Version: 1.x.x, Origin: flathub

Проверьте разрешения (для доступа к файлам вне домашней директории):

flatpak info --show-permissions fr.handbrake.ghb

Способ 3: Сборка HandBrake из исходников (актуальная версия)

Этот способ для опытных пользователей, которым нужна самая свежая версия.

Шаг 1: Создайте скрипт установки

nano ~/install-handbrake-source.sh

Содержимое скрипта:

#!/usr/bin/env bash
set -euo pipefail

api_url="https://api.github.com/repos/HandBrake/HandBrake/releases/latest"
work_root="${HANDBRAKE_WORK_ROOT:-$HOME/handbrake-source-build}"
build_gui="${HANDBRAKE_BUILD_GUI:-auto}"
require_pgp="${HANDBRAKE_REQUIRE_PGP:-0}"
jobs="${HANDBRAKE_BUILD_JOBS:-$(nproc)}"
release_key="1629C061B3DDE7EB4AE34B81021DB8B44E4A8645"

if [ "$(id -u)" -eq 0 ]; then
  printf 'Run this script as your regular user, not as root.\n' >&2
  exit 1
fi

for tool in sudo apt apt-cache awk nproc sha256sum tar; do
  if ! command -v "$tool" >/dev/null 2>&1; then
    printf 'Missing required command: %s\n' "$tool" >&2
    exit 1
  fi
done

base_deps=(
  curl jq gpg bzip2 autoconf automake build-essential cmake git
  libass-dev libbz2-dev libfontconfig-dev libfreetype6-dev libfribidi-dev
  libharfbuzz-dev libjansson-dev liblzma-dev libmp3lame-dev libnuma-dev
  libogg-dev libopus-dev libsamplerate0-dev libspeex-dev libtheora-dev
  libtool libtool-bin libturbojpeg0-dev libvorbis-dev libx264-dev libxml2-dev
  libvpx-dev m4 make meson nasm ninja-build patch python3 pkg-config tar zlib1g-dev
)

gui_deps=(
  appstream desktop-file-utils gettext gstreamer1.0-libav
  gstreamer1.0-plugins-good libgstreamer-plugins-base1.0-dev libgtk-4-dev
)

printf 'Refreshing APT metadata...\n'
sudo apt update

case "$build_gui" in
  auto)
    gui_candidate="$(apt-cache policy libgtk-4-dev | awk '/Candidate:/ {print $2; exit}')"
    if [ -n "$gui_candidate" ] && [ "$gui_candidate" != "(none)" ]; then
      enable_gui=1
    else
      enable_gui=0
      printf 'libgtk-4-dev is unavailable in this APT source set; building HandBrakeCLI only.\n'
    fi
    ;;
  0|false|no|cli)
    enable_gui=0
    ;;
  1|true|yes|gui)
    enable_gui=1
    ;;
  *)
    printf 'Invalid HANDBRAKE_BUILD_GUI value: %s\n' "$build_gui" >&2
    exit 1
    ;;
esac

printf 'Installing HandBrake build dependencies...\n'
sudo apt install "${base_deps[@]}"
if [ "$enable_gui" -eq 1 ]; then
  printf 'Installing GTK GUI build dependencies...\n'
  sudo apt install "${gui_deps[@]}"
fi

mkdir -p "$work_root"
printf 'Resolving latest HandBrake release from GitHub...\n'
release_json="$(curl -fsSL "$api_url")"
tag="$(jq -r '.tag_name // empty' <<<"$release_json")"
version="${tag#v}"

source_name="$(jq -r 'first(.assets[] | select(.name | test("^HandBrake-[0-9][0-9.]*-source\\.tar\\.bz2$")) | .name) // empty' <<<"$release_json")"
source_url="$(jq -r --arg name "$source_name" '.assets[] | select(.name == $name) | .browser_download_url' <<<"$release_json")"
source_digest="$(jq -r --arg name "$source_name" '.assets[] | select(.name == $name) | .digest // empty' <<<"$release_json")"
sig_name="${source_name}.sig"
sig_url="$(jq -r --arg name "$sig_name" '.assets[] | select(.name == $name) | .browser_download_url' <<<"$release_json")"

if [ -z "$tag" ] || [ -z "$source_name" ] || [ -z "$source_url" ] || [ -z "$sig_url" ]; then
  printf 'Could not resolve the latest HandBrake source release assets.\n' >&2
  exit 1
fi

if [[ "$source_digest" != sha256:* ]]; then
  printf 'GitHub release metadata did not include a SHA-256 digest for %s.\n' "$source_name" >&2
  exit 1
fi

source_dir="$work_root/HandBrake-$version"

if command -v HandBrakeCLI >/dev/null 2>&1 && [ -d "$source_dir/build" ]; then
  current_version="$(HandBrakeCLI --version 2>/dev/null | awk 'NR == 1 {print $2}')"
  if [ "$current_version" = "$version" ]; then
    printf 'HandBrakeCLI already reports version %s.\n' "$version"
    printf 'Build tree: %s\n' "$source_dir"
    exit 0
  fi
fi

printf 'Resolved HandBrake release: %s\n' "$tag"
cd "$work_root"
printf 'Downloading %s...\n' "$source_name"
curl -fL -o "$source_name" "$source_url"
curl -fL -o "$sig_name" "$sig_url"
printf 'Verifying SHA-256 digest from GitHub release metadata...\n'
printf '%s  %s\n' "${source_digest#sha256:}" "$source_name" | sha256sum -c -

if gpg --list-keys "$release_key" >/dev/null 2>&1; then
  printf 'Verifying OpenPGP signature with the local HandBrake release key...\n'
  gpg --verify "$sig_name" "$source_name"
elif [ "$require_pgp" = "1" ]; then
  printf 'HandBrake release key %s is not in your GPG keyring.\n' "$release_key" >&2
  exit 1
else
  printf 'OpenPGP signature saved as %s. Import the HandBrake release key to verify it.\n' "$work_root/$sig_name"
fi

printf 'Extracting source archive...\n'
rm -rf "$source_dir"
tar -xjf "$source_name" -C "$work_root"
cd "$source_dir"

configure_args=(--launch-jobs="$jobs" --launch)
if [ "$enable_gui" -eq 0 ]; then
  configure_args+=(--disable-gtk)
fi

printf 'Configuring and building HandBrake...\n'
./configure "${configure_args[@]}"
printf 'Installing HandBrake into /usr/local...\n'
sudo make --directory=build install
hash -r

printf '\nInstalled HandBrake from source release %s.\n' "$tag"
printf 'Version check:\n'
command -v HandBrakeCLI
HandBrakeCLI --version
if [ "$enable_gui" -eq 1 ]; then
  command -v ghb
fi
printf 'Build tree kept at %s for future updates or removal.\n' "$source_dir"

Шаг 2: Сделайте скрипт исполняемым и запустите

chmod +x ~/install-handbrake-source.sh
mkdir -p ~/.local/bin
mv ~/install-handbrake-source.sh ~/.local/bin/install-handbrake-source
~/.local/bin/install-handbrake-source

Запуск HandBrake

Запуск графической версии

Для APT и source-сборки:

ghb

Для Flatpak:

flatpak run fr.handbrake.ghb

Запуск CLI-версии

Для APT и source-сборки:

HandBrakeCLI --help

Пример конвертации:

HandBrakeCLI -i input.mkv -o output.mp4 --preset="Fast 1080p30"

Для Flatpak:

flatpak run --command=HandBrakeCLI fr.handbrake.ghb --help

Обновление HandBrake

Обновление APT-версии

sudo apt update && sudo apt install --only-upgrade handbrake handbrake-cli -y

Обновление Flatpak-версии

sudo flatpak update fr.handbrake.ghb

Обновление source-сборки

~/.local/bin/install-handbrake-source

Скрипт сам определит новую версию и пересоберёт HandBrake.


Удаление HandBrake

Удаление APT-версии

sudo apt remove handbrake handbrake-cli
sudo apt autoremove

Удаление Flatpak-версии

sudo flatpak uninstall fr.handbrake.ghb

Удаление source-сборки

# Если у вас есть директория сборки
sudo make --directory="$HOME/handbrake-source-build/HandBrake-*/build" uninstall
rm -rf ~/handbrake-source-build
rm -f ~/.local/bin/install-handbrake-source
hash -r

Удаление пользовательских настроек (опционально)

rm -rf ~/.config/ghb

Решение типичных проблем

8.1 Ошибка: APT не может найти пакет

Симптом: sudo apt install handbrakeUnable to locate package

Причина: Устаревшие списки пакетов или неправильное имя пакета.

Пошаговое решение:

Шаг 1: Обновите списки:

sudo apt update

Шаг 2: Проверьте, что пакет существует:

apt-cache policy handbrake

Шаг 3: Убедитесь, что вы не пытаетесь установить handbrake-gtk (в Debian пакет называется handbrake).


8.2 Ошибка: Flatpak не может найти fr.handbrake.ghb

Симптом: flatpak install fr.handbrake.ghb → не найден.

Причина: Не добавлен репозиторий Flathub.

Пошаговое решение:

Добавьте Flathub:

sudo flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

8.3 Ошибка: Сборка из исходников на Debian 11 (Bullseye) не собирает GUI

Симптом: На Debian 11 собирается только HandBrakeCLI, без GUI.

Причина: В Debian 11 нет пакета libgtk-4-dev.

Пошаговое решение:

Это нормально. Скрипт автоматически переключается в CLI-режим на Debian 11. Если вам нужен GUI на Debian 11, используйте Flatpak.


8.4 Ошибка: The wrong HandBrakeCLI runs

Симптом: HandBrakeCLI --version показывает не ту версию, которую вы ожидаете.

Причина: Установлены несколько версий (APT + source).

Пошаговое решение:

Посмотрите, какая версия вызывается:

command -v HandBrakeCLI

Если вы видите /usr/local/bin/HandBrakeCLI — это source-сборка. Если /usr/bin/HandBrakeCLI — APT-версия.

Удалите ненужную версию или используйте полный путь к нужной.


8.5 GUI не открывается

Симптом: ghb не запускается, ошибка cannot open display.

Причина: Вы пытаетесь запустить графическое приложение через SSH или в сессии без графики.

Пошаговое решение:

Запускайте HandBrake только из графической сессии (GNOME, KDE, Xfce). Если вы подключаетесь по SSH, используйте HandBrakeCLI вместо GUI.


Чек-лист: что проверить после установки

  • [ ] HandBrake установлен: HandBrakeCLI --version показывает версию
  • [ ] GUI запускается (если нужен): ghb или flatpak run fr.handbrake.ghb открывает окно
  • [ ] Для APT: dpkg-query -W handbrakeii
  • [ ] Для Flatpak: flatpak info fr.handbrake.ghbVersion: ...
  • [ ] Для source-сборки: command -v HandBrakeCLI/usr/local/bin/HandBrakeCLI

Часто задаваемые вопросы (FAQ)

Вопрос: HandBrake бесплатен?
Ответ: Да, HandBrake — это open-source проект под лицензией GPL.

Вопрос: Какой способ установки выбрать для десктопа?
Ответ: Flatpak — самая свежая версия с автоматическими обновлениями. APT — стабильная, но устаревшая.

Вопрос: HandBrake умеет конвертировать DVD/Blu-ray?
Ответ: HandBrake не декриптует защищённые диски. Используйте MakeMKV для рипа.

Вопрос: Где HandBrake хранит пресеты?
Ответ: В ~/.config/ghb/ (пользовательские настройки).

Вопрос: Как использовать аппаратное ускорение (NVENC, Intel QSV)?
Ответ: В зависимости от сборки и драйверов. В Flatpak-версии обычно включено.


Заключение

Теперь HandBrake установлен на вашем Debian. Вы можете конвертировать видео в различные форматы с помощью удобного графического интерфейса или командной строки.

Что дальше?