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