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.
Deixe um comentário