Como exibir entradas de teclado e gamepad de forma limpa no seu stream do OBS Studio

Quando estava gravando meus primeiros screencasts detalhando atalhos no meu editor de código, continuava me pegando pensando: os espectadores não fazem ideia do que estou realmente pressionando. Tinha que ou chamar cada combinação como Ctrl+Shift+P em voz alta, ou desenhar manualmente sobre as sobreposições de dicas durante a edição. Não é ideal, especialmente quando o vídeo dura meia hora.
Gamers e speedrunners enfrentam isso ainda mais frequentemente. Mostrar o tempo das pressionadas de gamepad ou mecânicas de bunny-hop em um shooter sem uma sobreposição visual é praticamente impossível.
Normalmente essas tarefas são resolvidas com gambiarras: lançar um utilitário de terceiros em uma janela separada e capturá-lo através do OBS usando Window Capture com uma chave de cor. Isso consome recursos extras de CPU e parece desorganizado. O plugin input-overlay do desenvolvedor univrsal resolve isso de forma diferente. Ele se integra diretamente ao OBS Studio como uma fonte nativa.
O que esse plugin pode fazer
O projeto é escrito em C++ e roda em versões de 64 bits do Windows e Linux. Sua tarefa é direta: interceptar entrada de dispositivos e desenhá-los sobre a cena em tempo real com latência mínima.
Dispositivos suportados incluem:
- Teclados padrão (com suporte para qualquer layout e modificadores)
- Mouses (rastreando botões, roda de rolagem e movimento do cursor)
- Gamepads e controles (Xbox, PlayStation, universal DirectInput/XInput)
Em vez de um log de texto primitivo, o plugin usa texturas e sprites personalizados. Você pega uma imagem de um gamepad ou teclado, corta em estados (botão solto / botão pressionado) e vincula os gráficos aos eventos do sistema.
Por dentro: arquitetura e dependências
A base de código do projeto contém várias soluções interessantes. Para evitar reinventar a roda para cada tipo de dispositivo, o autor empacotou bibliotecas low-level comprovadas.
Para interceptação global de teclado e mouse, ele usa libuiohook. Esta biblioteca funciona no nível de hooks de sistema do SO, o que torna possível ouvir a entrada mesmo quando a janela do OBS está em segundo plano ou um jogo está rodando em modo tela cheia.
Gamepads são tratados por SDL2. Isso garante excelente compatibilidade com controles de diferentes gerações sem mexer com descritores de dispositivo brutos.
A integração com mongoose merece atenção especial — um servidor web leve embutido. Por que um plugin de captura de teclas precisaria de um? Se você estiver transmitindo de dois computadores (um para jogos, o outro como codificador de stream), você pode enviar eventos de entrada pela rede local do PC de jogos diretamente para a instância do OBS na máquina de streaming. Um recurso muito inteligente que elimina a bagunça de cabos.
Como construir seu próprio overlay
A configuração do plugin consiste em dois arquivos: uma textura gráfica PNG e um arquivo de layout JSON.
Anteriormente o projeto usava o formato .ini, mas eventualmente mudou para JSON. Então você não precisa calcular coordenadas de pixels para botões em um bloco de notas, o autor lançou um editor visual web chamado Config Creation Tool (CCT).
Você faz upload da sua folha de sprites no navegador, posiciona caixas delimitadoras sobre os botões, vincula eles aos códigos de tecla e exporta a configuração final:
Depois disso, você só precisa adicionar uma nova fonte "Input Overlay" no OBS Studio, apontá-la para o JSON e PNG, e o widget está pronto para usar. O plugin renderiza texturas através do pipeline gráfico do OBS, então a sobrecarga de renderização é praticamente zero.
Onde isso é útil para desenvolvedores
Pode parecer uma ferramenta estritamente para streamers. Mas para conteúdo técnico é igualmente útil:
- Gravando screencasts educacionais. Demonstrar atalhos no Vim, Emacs, Blender ou VS Code ajuda os espectadores a replicar ações em tempo real sem se distrair com pausas.
- Testando gamepads e latência de entrada. Se você está desenvolvendo um jogo indie ou emulador, a sobreposição permite verificar visualmente pressionadas do controle com reações do personagem na tela.
- Apresentações e demos de equipe. Durante cenários complexos de UI ou demonstrações de utilitários de terminal, os espectadores veem imediatamente modificadores e teclas de função.
Nuances e limitações
A documentação no repositório é concisa, então iniciantes precisarão gastar meia hora entendendo a estrutura dos sprites. Criar uma skin polida do zero requer habilidades básicas de editor gráfico.
Mantenha a privacidade em mente também. Como os hooks interceptam entrada globalmente, durante uma transmissão ou gravação de vídeo a sobreposição exibirá fielmente qualquer tecla que você pressionar se começar a digitar senhas ou dados privados. Para esses casos, é melhor configurar uma tecla de atalho para ocultar a fonte no OBS antecipadamente.
O plugin também é focado em Windows e Linux x64 — builds para macOS não são oficialmente suportados.
Vale a pena experimentar
Se você precisa de uma forma limpa e performática de exibir entrada de dispositivos no OBS sem gambiarras de navegador e quedas de quadros, input-overlay é uma das opções mais confiáveis.
O projeto está ativo desde 2017, reuniu mais de 4.000 estrelas e aborda uma tarefa específica sem inchar a base de código. Binários pré-construídos estão disponíveis na aba Releases no GitHub, e presets prontos para gamepads e teclados podem ser encontrados nos fóruns do OBS Project.
Projetos relacionados