Categorias
Linux Outros

Vídeo da Logitech C920 travando no OBS do Ubuntu Linux2 min leitura

Como resolvi o problema do vídeo da webcam Logitech C920 travando no OBS do Ubuntu Linux.

Quando estava fazendo alguns testes com alguns softwares de gravação de vídeo, como o OBS Studio ou o GUVCviewer, o vídeo travava muito. O estranho era que o problema não ocorria quando fazia videoconferência pelo Zoom ou Appear.in.

Pesquisando no Google por “logitech c920 obs ubuntu performance“, encontrei uma resposta no fórum do Manjaro que falava para alterar a configuração do formato de vídeo de entrada para YV12 (emulated). Pronto, problema resolvido!

Fiz abaixo um vídeo para demonstrar o problema que eu estava tendo, veja como os movimentos ficam todos “travados” em relação ao áudio. Fazer qualquer movimento mais rápido era impossível.

A configuração padrão da câmera é YUYV 4:2:2 e ainda não consegui encontrar o motivo deste problema acontecer.

Durante minha pesquisa, descobri como ver os formatos que a câmera suporta e tive a seguinte saída:

$ v4l2-ctl --list-formats --device 2
 ioctl: VIDIOC_ENUM_FMT
     Type: Video Capture
     [0]: 'YUYV' (YUYV 4:2:2)
     [1]: 'H264' (H.264, compressed)
     [2]: 'MJPG' (Motion-JPEG, compressed)

Aparentemente o formato que estava travando é suportando pela câmera. Verifiquei também todas as informações adicionais dela:

$ v4l2-ctl --all --device 2
 Driver Info:
     Driver name      : uvcvideo
     Card type        : HD Pro Webcam C920
     Bus info         : usb-0000:00:14.0-4
     Driver version   : 5.0.15
     Capabilities     : 0x84a00001
         Video Capture
         Metadata Capture
         Streaming
         Extended Pix Format
         Device Capabilities
     Device Caps      : 0x04200001
         Video Capture
         Streaming
         Extended Pix Format
 Priority: 2
 Video input : 0 (Camera 1: ok)
 Format Video Capture:
     Width/Height      : 1920/1080
     Pixel Format      : 'MJPG' (Motion-JPEG)
     Field             : None
     Bytes per Line    : 0
     Size Image        : 4147200
     Colorspace        : sRGB
     Transfer Function : Default (maps to sRGB)
     YCbCr/HSV Encoding: Default (maps to ITU-R 601)
     Quantization      : Default (maps to Full Range)
     Flags             : 
(...)

Também não identifiquei nada relevante nessas informações. Como consegui resolver o problema, acabei parando minha pesquisa por aí.

Em uma publicação no fórum do OBS encontrei alguém falando que em webcams o formato interno utilizado geralmente é MJPEG e que emulando um formato de vídeo no OBS pode reduzir a banda (bandwidth) dos dispositivos USB e possibilitar uma maior resolução/framerate.

Se você tiver uma ideia do porque o problema está ocorrendo, deixe um comentário abaixo para matar a minha curiosidade.

Por Daniel Kossmann Ferraz

Daniel Kossmann Ferraz é graduado em Ciência Magia da Computação pela UFPR e (in)formado em jornalismo cultural, desenho e tradução pela Universidade Kósmica, tendo obtido com louvor o título de Kosmonauta. Nas horas vagas, gosta de viajar para universos paralelos.
Se você gostou dos meus textos, me ajude a escrever mais.

Você tem algo construtivo sobre este texto para dizer? Então comente abaixo