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.



Comments

3 respostas para “Vídeo da Logitech C920 travando no OBS do Ubuntu Linux”

  1. O que sei dizer é que o formato de subamostragem das informações de cor 4:2:2 é utilizado em vídeos de altíssima qualidade requerendo, entretanto, alta taxa de processamento. Diversas aplicações comerciais de alta qualidade trabalham com uma taxa de subamostragem inferior, como 4:2:0.

    https://pt.wikipedia.org/wiki/Chroma_subsampling

    O Motion Jpeg trata cada quadro/frame do vídeo como uma imagem e aplica nele uma compressão baseada em compressão de imagens estáticas (JPEG).

    O H.264 é um padrão de compressão desenvolvido nativamente para vídeo, consegue explorar mais as informações reduntantes presentes no vídeo (entre quadros, por exemplo), permitindo alcançar um fluxo de dados resultantes de menor taxa, quando comparado com o Motion JPEG, porém com alta qualidade de imagem. O H.264 deve requerer, entretanto, mais processamentos para a codificação e decodificação.

    Espero ter ajudado de alguma forma.

    Abraço!

    1. Obrigado pela ótima explicação!

  2. Isso ai deve ajudar muita gente. Acabou que quando rodei o OBS para testar sua sugestão, estava tudo resolvido sozinho. Bruxarias da tecnologia. De qualquer maneira, deixei

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *