qsm-rd
O QSM Direct substitui a imagem do noVNC no console web do Proxmox VE por um stream de vídeo WebRTC, na mesma aba do navegador, com o mesmo login do PVE e a mesma permissão VM.Console. Nada é instalado no cliente, e o pveproxy e o pvedaemon rodam sem modificações.
- Proxmox VE
- WebRTC
- LXC
- Status
- Versão 0.4.0. O HEVC é experimental, e a migração ao vivo de uma VM com QSM Display1 não foi qualificada. Há uma solicitação de recurso registrada no Proxmox (bug #8106); um RFC e séries de patches para qemu-server e pve-manager estão preparados no repositório.
- Licença
- GPL-3.0-or-later; o script do console do PVE, o serviço de sinalização, o console LXC e a página do visualizador são AGPL-3.0-or-later.
- Plataformas
- Nós Proxmox VE 9; no cliente, um navegador com H.264 e Opus no WebRTC.
O que resolve
O console noVNC padrão envia os retângulos da tela que mudaram. Para trabalhar dentro de um desktop em execução, com vídeo, rolagem ou interfaces animadas, isso significa poucas imagens distintas por segundo com muita banda, e nenhum 3D no guest. O QSM Direct codifica a tela do guest como vídeo no nó e a transmite ao navegador. O README publica uma comparação medida com o noVNC padrão, incluindo os casos em que o noVNC continua sendo a melhor ferramenta: a primeira imagem, um evento isolado do ponteiro e tudo o que acontece antes de um sistema operacional estar rodando.
Principais recursos
- H.264 por padrão via NVENC, QSV, VA-API ou
libx264na CPU; HEVC como escolha explícita e experimental por VM. - Guests VirGL com OpenGL e 3D, ou adaptadores Standard VGA, VirtIO e VMware sem GPU.
- Som (Opus), o microfone do navegador no guest e área de transferência de texto nos dois sentidos; em uma VM, a área de transferência requer um agente opcional no guest.
- O movimento do ponteiro trafega em um canal próprio, não ordenado e só com o estado mais recente, por isso não fica na fila atrás de um frame pesado.
- Contêineres LXC com desktop KDE Plasma: um console por tty, cada um com sua própria tela de login.
Como funciona
O navegador envia sua oferta WebRTC a um serviço de sinalização local do nó na porta TLS 8007. O serviço verifica o ticket do PVE do navegador e a permissão VM.Console pelo próprio /access/ticket do PVE e repassa a oferta a um serviço de terminal, que inicia um media worker por VM. O worker lê o display D-Bus do QEMU, codifica imagem e som e os envia diretamente ao navegador; a entrada volta pelo mesmo caminho. Todos os espectadores de uma VM compartilham um único stream do encoder.
apt install ./qsm-pve-direct_*.deb systemctl enable --now qsm-pve-direct-terminal.service qsm-pve-direct-signal.service
Requisitos
- Proxmox VE 9 (
pve-manager9.x); o pacote é compilado no Debian 13 e instalado em todos os nós que possam executar a VM. - Navegador: Chrome, Edge, Chromium com codecs proprietários, Safari ou Firefox com o plugin OpenH264.
- Rede: TCP 8006 e 8007 e UDP de entrada a partir das redes dos operadores; um nome de host para o qual o certificado do nó seja válido.
- Encoder: NVENC, QSV, VA-API ou a CPU (cerca de meio núcleo por console aberto com
libx264); o perfil VirGL exige um dispositivo de renderização DRM. Até 16 sessões de console por nó.
Esta página resume o README e a documentação do repositório em outubro de 2026. A fonte de referência é o próprio repositório.