Мы только что запустились. Сайт и сервис ещё дорабатываются — заранее просим прощения за возможные неточности и огрехи. Заметили ошибку или что-то работает не так? Напишите нам — быстро исправим.

← Все проекты
RU
Не только TAKT

qsm-rd

QSM Direct заменяет картинку noVNC в веб-консоли Proxmox VE видеопотоком WebRTC — в той же вкладке браузера, с тем же входом в PVE и тем же правом VM.Console. На клиенте ничего не устанавливается, а pveproxy и pvedaemon работают без изменений.

  • Proxmox VE
  • WebRTC
  • LXC
Статус
Версия 0.4.0. HEVC — экспериментальный, живая миграция ВМ с QSM Display1 не проверялась. В Proxmox подан запрос на функцию (bug #8106); RFC и серии патчей для qemu-server и pve-manager подготовлены в репозитории.
Лицензия
GPL-3.0-or-later; скрипт консоли PVE, сервис сигнализации, консоль LXC и страница просмотрщика — AGPL-3.0-or-later.
Платформы
Узлы Proxmox VE 9; на клиенте — браузер с H.264 и Opus в WebRTC.

Какую задачу решает

Штатная консоль noVNC передаёт изменившиеся прямоугольники экрана. Для работы внутри запущенного рабочего стола — видео, прокрутка, анимированные интерфейсы — это мало различимых кадров в секунду при большой полосе и нет 3D в госте. QSM Direct кодирует экран гостя в видео на узле и передаёт его в браузер. В README опубликовано измеренное сравнение со штатным noVNC, включая случаи, где noVNC остаётся лучшим инструментом: первая картинка, одиночное событие указателя и всё, что происходит до запуска ОС.

Основные возможности

  • H.264 по умолчанию через NVENC, QSV, VA-API или libx264 на CPU; HEVC — явный экспериментальный выбор для отдельной ВМ.
  • Гости VirGL с OpenGL и 3D или адаптеры Standard VGA, VirtIO и VMware без GPU.
  • Звук (Opus), микрофон браузера в госте и текстовый буфер обмена в обе стороны; в ВМ для буфера обмена нужен необязательный гостевой агент.
  • Движение указателя идёт по собственной неупорядоченной полосе «последнего состояния» и не может застрять в очереди за тяжёлым кадром.
  • LXC-контейнеры с рабочим столом KDE Plasma: по консоли на каждый tty, у каждой свой экран входа.

Как это работает

Браузер отправляет WebRTC-offer локальному сервису сигнализации на узле, TLS-порт 8007. Сервис проверяет PVE-тикет браузера и право VM.Console через собственный /access/ticket PVE и передаёт offer терминальному сервису, который запускает по одному медиа-воркеру на ВМ. Воркер читает D-Bus-дисплей QEMU, кодирует картинку и звук и отправляет их прямо в браузер; ввод идёт обратно тем же путём. Все зрители одной ВМ делят один поток кодера.

apt install ./qsm-pve-direct_*.deb
systemctl enable --now qsm-pve-direct-terminal.service qsm-pve-direct-signal.service

Требования

  • Proxmox VE 9 (pve-manager 9.x); пакет собирается на Debian 13 и ставится на каждый узел, где может работать ВМ.
  • Браузер: Chrome, Edge, Chromium с проприетарными кодеками, Safari или Firefox с плагином OpenH264.
  • Сеть: TCP 8006 и 8007 и входящий UDP из сетей операторов; имя хоста, для которого действителен сертификат узла.
  • Кодер: NVENC, QSV, VA-API или CPU (около половины ядра на открытую консоль с libx264); профилю VirGL нужно DRM-устройство рендеринга. До 16 сеансов консоли на узел.

Эта страница кратко пересказывает README и документацию репозитория по состоянию на октябрь 2026 года. Первоисточник — сам репозиторий.