Estou tentando gravar um vídeo de 1080 a 30FPS de uma webcam Logitech C920. Simples, certo? Bem, aparentemente não.
Primeiro, tentei em meu desktop rodando 16.04 usando o aplicativo Cheese integrado do Ubuntu. A visualização transmite perfeitamente bem a 30FPS, mas assim que começo a gravar, a taxa de quadros cai drasticamente para provavelmente cerca de ~15FPS (não sei exatamente, já que o Cheese não fornece um medidor de FPS).
Em seguida, tentei novamente em meu desktop rodando 16.04 usando guvcview
. Infelizmente, a versão nos repositórios padrão para 16.04, 2.02
, tem umerroo que faz com que ele grave vídeo como um único quadro estático. Arghh... então instalei 2.05
a partir de um PPA não oficial. Isso resolveu o bug mencionado acima, no entanto, quando vou gravar vídeo (usando H.264 do codificador de hardware da câmera), o primeiro segundo ou mais do vídeo grava perfeitamente, mas então a taxa de quadros cai para entre 3 e 5 FPS.
Por fim, para ter certeza de que não era apenas um problema com meu desktop, instalei guvcview
a versão 2.05
18.04 em meu laptop, mas mais uma vez, quando vou gravar vídeo (usando H.264 do codificador de hardware da câmera) o primeiro segundo ou então o vídeo grava perfeitamente, mas a taxa de quadros cai para entre 3 e 5 FPS.
Então, o que diabos está acontecendo aqui? Isso é um problema de libuvc
compatibilidade com o Logitech C920? Eu sei que não é um problema de hardware com pouca potência, já que tenho uma CPU AMD de 6 núcleos em meu desktop e um i7 de 3ª geração quad-core em meu laptop.
Responder1
Eu descobri como fazê-lo funcionar com guvcview
.
eu encontreiesta postagemque mencionou que o problema era a guvcview
recodificação do fluxo da câmera. Por que isso causou a horrível queda na taxa de quadros é um mistério para mim, já que meu uso de CPU era extremamente baixo...
De qualquer forma, a solução é dizer guvcview
para usar o stream bruto da câmera:
Observe que o formato que você instrui o programa a recodificar (ou não) é totalmente separado do formato que você instrui a transmitir da câmera:
Além disso, por outro lado, parece que não tenho ideia de como ajustar o grande número de parâmetros H.264 guvcview
ou que o codificador H.264 de hardware no Logitech C920 simplesmente não é tão bom. Gravei um clipe de 1080p30 em MJPEG (que resultou em cerca de 60Mb/s de dados) e transcodifiquei-o em 10Mb/s H.264 usando Veags Pro na minha caixa do Windows, e o resultado foi muito superior ao streaming da webcam diretamente em H. .264, também a 10Mb/s.