Igor Machado

Aug 4, 2020

5 min read

Dicas para OBS no Linux para Google Meet

Novas tecnologias de transmissão são fundamentais para o retorno aos cursos emergenciais e aulas remotas, então segui os bons conselhos do meu irmão Mateus Nazário e colegas professores para dar uma olhada no Open Broadcast Studio (OBS). As vantagens do OBS são amplo suporte a plataformas (Windows/Linux/Mac) e grande flexibilidade através de plugins, além de ser uma tecnologia de código-aberto.

Em resumo: a tecnologia é ótima, funciona e vale a pena! Vou contar alguns desafios que passei para deixar tudo direitinho (vou focar no Linux neste tutorial). Como todo tutorial Linux, vou assumir familiaridade com a linha de comandos. Veja abaixo ele funcionando no Google Meet com meu rosto recortado em dois filtros circulares, com o Museu de Arte Contemporânea de Niterói (MAC) ao fundo.

Câmera Virtual do OBS no Deepin com Firefox e Chrome para Google Meet (driver v4l2loopback YUY2)

A instalação foi relativamente tranquila, embora esperasse problemas devido ao meu repositório bastante antigo do Deepin 15, mas bastou seguir os passos do site do OBS e fazer o download (https://obsproject.com/pt-br/download). O programa pode parecer complexo à primeira vista, mas poucos recursos são necessários para configurar um mínimo (para gravações e aulas síncronas).

Basicamente, você vai precisar de uma câmera (no meu caso é a do notebook) como entrada, e configurar uma câmera virtual como saída. Instalei o plugin OBS para câmeras virtuais do linux, o V4L2 Video Output (https://github.com/CatxFish/obs-v4l2sink). No Windows, o equivalente é o plugin VirtualCam: https://github.com/CatxFish/obs-virtual-cam.

No linux, também é preciso instalar o módulo v4l2loopback, que pode ser feito com o apt:

$ sudo apt install v4l2loopback-dkms

Depois, é necessário criar uma câmera virtual (coloquei número 7 nela):

$ sudo modprobe v4l2loopback devices=1 video_nr=7 card_label="OBS Cam 7" exclusive_caps=1

Para verificar se ela foi criada:

$ v4l2-ctl --list-devices

OBS Cam 07 (platform:v4l2loopback-000):
/dev/video7

Integrated Webcam: Integrated W (usb-0000:00:14.0-5):
/dev/video0

Então, basta abrir o OBS studio, criar uma Cena, adicionar como Fonte a sua câmera (Dispositivo de Captura de Vídeo V4L2), pode adicionar imagens de fundo (como eu fiz), ou colocar um filtro na sua câmera para cortar um círculo nela (como eu fiz… explico mais abaixo). Depois, vá em Ferramentas -> V4L2 Vídeo Output e configurar a saída para /dev/video7 (sua câmera virtual).

v4l2-ctl --list-formats              # YUYV 4:2:2 ==> YUY2
ls -ltr /var/lib/dkms/v4l2loopback # bug no 0.10 => rebuild github
Saída da câmera virtual no OBS no formato YUY2

Caso algo dê errado e o OBS não abra mais (se escolher o YUV420 por acaso…), remove o módulo v4l2 e carregue novamente (não precisa reiniciar o computador em nenhum momento):

$ sudo rmmod v4l2loopback

Após subir a câmera virtual no OBS, verifique se está funcionando (no ffplay ou vlc):

$ ffplay /dev/video7$ vlc v4l2:///dev/video7

Pronto! Se você chegou até aqui, já pode testar sua câmera no Google Meet… basta abrir uma sessão em meet.google.com, e selecionar a câmera do OBS no popup do browser. Pode ser necessário escolher manualmente na opção Configurações do Google Meet:

Selecionando manualmente a câmera virtual OBS Cam 07

Caso algo não funcione, sugiro testar no site do webrtc:

Quando tentei rodar no jitsi (meet.jit.si), tive um problema devido a resolução 1280x720 não ser suportada na câmera (o WebRTC me ajudou nisso!). Tem um issue aberto no jitsi a respeito: https://github.com/jitsi/jitsi-meet/issues/5186

Creio que é possível aumentar a resolução no próprio OBS, porém não experimentei ainda.

Finalmente, para conseguir o filtro de círculo no rosto, fiz no GIMP um gradiente transparente externamente (e sólido no círculo), como no exemplo abaixo:

Gradiente transparente em .png para filtro no OBS

Caso não consigam baixar daqui (botão direito, “salvar imagem como…”), podem baixar do github. Segui as ideias de: https://www.versluis.com/2019/01/creating-a-round-cutout-mask-for-obs-studio/

A vantagem do gradiente é que ele é bem simples de processar, que é a mesma ideia de um Chroma Key (pano de fundo verde), que também dá pra filtrar no OBS. Eu gostaria que algum plugin do OBS detectasse o rosto automaticamente (como Snap Camera), mas não achei nenhum… mas os colegas que usam Snap Camera já acham que custa muito processamento, e de fato pode ser melhor adquirir uma tela verde se quiser fazer transmissões recorrentes no Chroma Key.

A cereja do bolo: Chroma Key de cartolina

Por fim, comprei uma cartolina verde pra testar um Chroma Key bem caseiro… comprei uma verde claro e outra verde escuro (não achei aquele “verde brilhante” que vendem oficialmente por aí). O verde escuro deu um resultado interessante!

Chroma Key caseiro de cartolina verde no OBS

Nessa foto abaixo dá pra ver melhor a cor da cartolina:

Configuração “low cost” com Chroma Key de cartolina e luminária com câmera

Podem ver as configurações que usei no OBS do filtro Chroma Key:

Colocando o filtro do círculo junto com o Chroma Key, fica “perfeito”:

Filtro gradiente junto com chroma key de cartolina

Enfim, espero que essas dicas sejam úteis! Até mais!

Love podcasts or audiobooks? Learn on the go with our new app.