Habilitando a captura de alta resolução da câmera da web

15

Estou experimentando usar o Pi para streaming de webcam e detecção de movimento, com o motionaplicativo. Tentando algumas câmeras web diferentes e combinações com outro hardware, encontrei uma combinação perfeitamente estável (veja abaixo). No entanto, só estou conseguindo trabalhar com uma resolução de 352x288. Gostaria de utilizar mais da resolução que a webcam de 720p é capaz. Eu tentei 640x480, 640x360 e 1280x720, mas eles não funcionam ( motionnão é possível inicializar a câmera). O Pi possui 256 MB de memória, o que deve ser suficiente para suportar as altas resoluções. Por exemplo, motionlista o uso da memória em 1,8 MB para a resolução de 1280x720.

Alguma dica sobre como habilitar uma resolução mais alta?

Estábulo:

  • Logitech C310h Webcam USB 2.0 HD, câmera UVC (046d: 081b)
  • Paleta 352x288, YUYV
  • alimentado por carregador de iPad
  • webcam conectada à porta USB inferior
  • nada conectado à porta USB superior
  • rede com fio conectada
  • executando o Motion 3.2.12.
  • SO: 2012-09-18-wheezy-raspbian.img
  • alterar apenas para motion.conf: definindo a resolução para 352x288

Edit: Eu descobri que a configuração que estou usando atualmente com o MJPG-streamer não é completamente estável, então há uma chance de que a configuração descrita acima não seja completamente estável, mas apenas mais estável, pois usa uma resolução mais baixa.

Editar 2 (21/4/13): Sabe-se há algum tempo que o USB não é estável no Raspberry Pi, causando problemas em muitas câmeras da web e dongles wifi. A fundação está trabalhando ativamente nisso, e bons progressos foram feitos ultimamente. Há uma atualização disponível via rpi-update que corrige muitos problemas. Veja o tópico USB Redux no fórum Raspberry Pi .

Roger Dahl
fonte

Respostas:

4

Você já tentou conectar a webcam a um hub USB com alimentação? Alguns dispositivos exigem mais corrente do que o Raspberry Pi pode fornecer e podem se comportar de maneira irregular quando conectados às portas USB integradas.

tonymac
fonte
Obrigado pela resposta. Eu não tinha um hub com potência para testar, mas parecia improvável que um problema de energia fizesse com que fosse completamente estável em baixa resolução e não funcionasse em alta resolução.
Roger Dahl
4

O limite de resolução diminuiu quando mudei motionpara MJPG-streamer. MJPG-streamertransmite 1280x720 a 5FPS. Com 3 computadores conectados ao fluxo, o uso da CPU é de apenas 10%. A desvantagem MJPG-streameré que ele não possui detecção de movimento.

No entanto, esta solução não é completamente estável. Eu tenho que reiniciar o RPi a cada poucos dias.

Roger Dahl
fonte
3

Para começar, usei um aplicativo de movimento logitech c270. Não transmito o feed pela rede, apenas despejo as imagens no disco (a resolução máxima é 1280x960).

O MJPEG não funciona para mim, por isso estou preso ao YUVU.

Acredito que é muito complicado encontrar a resolução correta com a qual fiquei preso com 352x288 por algum tempo, até descobrir que também posso usar uma resolução de 960 x 720. Com esse tipo de resolução, recebo cerca de 2 qps. (mantém baixa a necessidade de armazenamento ;-)).

v4l2-ctl --list-formats-ext : deve dar uma idéia dos formatos que você pode usar.

O arquivo de movimento usa resolução máxima, uma máscara e tira instantâneos a cada segundo em que o motiondect depende apenas da detecção para tirar fotos.

Criei um pgm preto para o primeiro desativar completamente a detecção de movimento e tirar fotos a cada segundo.

https://dl.dropbox.com/u/19023009/motion.zip

Para executar o movimento eu uso nohup sudo motion > logfile.txt &

miceterminador
fonte