Архив рассылок сообщества снова открыт. Читать письма 2003-2009
Главная/Гайды/HTPC на Linux

Настройка видеокарты и вывода на ТВ

Это вторая статья цикла про сборку HTPC на Linux. В вводной части мы выбрали железо и поставили минимальную систему с Kodi. Теперь самое важное для качества картинки - правильно настроить видеокарту, вывод на телевизор и аппаратное декодирование. От этого зависит, будет ли видео идти плавно или дёргаться, а картинка - совпадать с краями экрана.

Драйвер видеокарты

Первым делом определите вашу видеокарту и поставьте нужный драйвер. Посмотреть модель можно командой:

lspci | grep -i vga

Дальше зависит от вендора. Для Intel и AMD в большинстве случаев хватает открытых драйверов из ядра и Mesa - они уже поддерживают VA-API. Для NVIDIA обычно ставят проприетарный драйвер, который приносит VDPAU:

sudo apt install nvidia-driver

После установки драйвера и перезагрузки система должна поднять графику. Если картинка вообще не выводится, чаще всего дело в разрешении или в том, что телевизор не в том входе.

Файл xorg.conf

В современных системах X11 обычно настраивается автоматически, но для телевизора часто нужен ручной контроль. Конфигурация лежит в /etc/X11/xorg.conf или в отдельных файлах внутри /etc/X11/xorg.conf.d/. Минимальная секция экрана для NVIDIA может выглядеть так:

Section "Device"
    Identifier  "Videocard0"
    Driver      "nvidia"
EndSection

Section "Screen"
    Identifier  "Screen0"
    Device      "Videocard0"
    DefaultDepth 24
    SubSection "Display"
        Depth   24
        Modes   "1920x1080"
    EndSubSection
EndSection

Здесь мы жёстко задаём разрешение 1920x1080, чтобы драйвер не выбирал что-то неподходящее по данным телевизора.

Разрешение и проблема overscan

Многие телевизоры по привычке из эпохи аналогового ТВ обрезают края картинки - это называется overscan. На практике вы видите, что панель задач Kodi или строка меню уходят за границы экрана. Есть два пути решения.

Первый и правильный - выключить overscan в меню самого телевизора. Обычно опция называется Just Scan, 1:1, Pixel Perfect или Full Pixel в настройках изображения. Это лучший вариант, потому что картинка выводится пиксель в пиксель без масштабирования.

Если в телевизоре такой опции нет, картинку можно сжать средствами драйвера. Для NVIDIA есть утилита и параметр overscan compensation, а универсально помогает xrandr с трансформацией. Проверить доступные режимы можно так:

xrandr --query

Всегда сначала пробуйте отключить overscan в телевизоре. Компенсация со стороны компьютера ухудшает чёткость, потому что изображение приходится масштабировать.

Аппаратное декодирование: VDPAU и VA-API

Это ключевой момент для слабого HTPC. Без аппаратного декодирования тяжёлое видео 1080p или 4K нагружает процессор на сто процентов, греется и дёргается. С ним декодированием занимается видеокарта, а процессор почти свободен.

Есть два основных интерфейса:

  • VDPAU - исторически используется на видеокартах NVIDIA.
  • VA-API - используется на Intel и AMD, а через прослойку может работать и с NVIDIA.

Для VA-API поставьте инструменты и драйвер под ваш чип:

sudo apt install vainfo
vainfo

Команда vainfo покажет список профилей, которые умеет декодировать видеокарта (H.264, HEVC, VP9 и другие). Для VDPAU на NVIDIA аналогично есть утилита vdpauinfo. Если в выводе присутствуют нужные вам кодеки - декодирование заработает.

В самом Kodi аппаратное ускорение включается в настройках проигрывателя: раздел Settings - Player - Videos, где есть переключатели для VDPAU и VA-API. Обычно их достаточно включить, и Kodi сам начнёт разгружать процессор. Проверить эффект просто: запустите тяжёлый файл и посмотрите загрузку процессора командой top - при работающем ускорении она будет заметно ниже.

Звук по HDMI

HDMI передаёт и видео, и звук, но звук по нему в Linux иногда нужно включить явно. Сначала посмотрите список звуковых устройств:

aplay -l

Среди устройств вы увидите строку с HDMI - именно её нужно назначить выходом по умолчанию. Если вы используете PulseAudio или PipeWire, выбрать HDMI-выход и его профиль удобно через микшер. Если используете чистый ALSA, выход задаётся в файле /etc/asound.conf или ~/.asoundrc указанием нужной карты и устройства.

В самом Kodi выходное устройство звука выбирается в разделе Settings - System - Audio. Там же задаётся число каналов (стерео или 5.1) и режим passthrough, если у вас ресивер, умеющий сам декодировать Dolby и DTS.

Разные вендоры: краткая шпаргалка

  • Intel - открытый драйвер, VA-API работает почти из коробки, хороший тихий вариант для 1080p и 4K.
  • AMD (Radeon) - открытый драйвер amdgpu и Mesa, VA-API поддерживается, современные карты тянут HEVC.
  • NVIDIA - проприетарный драйвер и VDPAU, стабильно и предсказуемо, но требует ручной установки драйвера.

Проверка результата

После настройки убедитесь, что выполняются три условия: картинка занимает весь экран телевизора без обрезанных краёв, тяжёлое видео идёт плавно при низкой загрузке процессора, а звук выходит по HDMI. Когда всё это работает, переходите к третьей статье - настройке ИК-пульта через LIRC, чтобы управлять готовым медиацентром с дивана.