Habilitar la captura de alta resolución desde la cámara web

15

Estoy experimentando con el uso de Pi para la transmisión de cámaras web y la detección de movimiento, con la motionaplicación. Al probar algunas cámaras web diferentes y combinaciones con otro hardware, he encontrado una combinación que es perfectamente estable (ver más abajo). Sin embargo, solo estoy haciendo que funcione con una resolución de 352x288. Me gustaría utilizar más de la resolución que la cámara web de 720p es capaz de hacer. He probado 640x480, 640x360 y 1280x720, pero no funcionan ( motionno se puede inicializar la cámara). El Pi tiene 256 MB de memoria, lo que debería ser suficiente para admitir las altas resoluciones. Por ejemplo, motionenumera el uso de memoria en 1.8MB para la resolución de 1280x720.

¿Algún consejo sobre cómo habilitar una resolución más alta?

Estable:

  • Cámara web Logitech C310h USB 2.0 HD, cámara UVC (046d: 081b)
  • 352x288, paleta YUYV
  • accionado por el cargador de iPad
  • cámara web conectada al puerto USB inferior
  • nada conectado al puerto USB superior
  • red cableada conectada
  • ejecutando Motion 3.2.12.
  • OS: 2012-09-18-wheezy-raspbian.img
  • solo cambie a motion.conf: configuración de la resolución a 352x288

Editar: desde entonces descubrí que la configuración que estoy usando actualmente con MJPG-streamer no es completamente estable, por lo que existe la posibilidad de que la configuración descrita anteriormente no sea completamente estable, sino más estable, ya que utiliza una resolución más baja.

Edición 2 (21/04/13): Se sabe desde hace un tiempo que el USB no es estable en la Raspberry Pi, lo que causa problemas con muchas cámaras web y dongles wifi. La fundación está trabajando activamente en esto, y últimamente se han hecho buenos progresos. Hay una actualización disponible a través de rpi-update que soluciona muchos problemas. Vea el hilo USB Redux en el foro Raspberry Pi .

Roger Dahl
fuente

Respuestas:

4

¿Has intentado conectar la cámara web a un concentrador USB con alimentación? Algunos dispositivos requieren más corriente de la que puede proporcionar Raspberry Pi, y pueden comportarse de manera errática cuando se conectan a los puertos USB integrados.

tonymac
fuente
Gracias por la respuesta. No tenía un concentrador con potencia para probar, pero me parecía poco probable que un problema de alimentación causara que fuera completamente estable a baja resolución y no funcionara en absoluto en una alta resolución.
Roger Dahl el
4

El límite de resolución desapareció cuando cambié de motiona MJPG-streamer. MJPG-streamertransmite 1280x720 a 5FPS. Con 3 computadoras conectadas a la transmisión, el uso de la CPU es de solo alrededor del 10%. La desventaja MJPG-streameres que no tiene detección de movimiento.

Sin embargo, esta solución no es completamente estable. Tengo que reiniciar el RPi cada pocos días.

Roger Dahl
fuente
3

Para empezar, utilicé una aplicación de movimiento logitech c270. No transmito la alimentación a través de la red, simplemente vuelco las imágenes al disco (la resolución máxima es 1280x960).

MJPEG no funciona para mí, así que estoy atrapado con YUVU.

Creo que es muy difícil encontrar la resolución correcta con la que estuve atascado con 352x288 durante bastante tiempo hasta que descubrí que también puedo usar una resolución de 960 x 720. Con este tipo de resolución obtengo aproximadamente 2 fps. (mantiene baja la necesidad de almacenamiento ;-)).

v4l2-ctl --list-formats-ext : debería darle una idea de los formatos que puede usar.

El archivo de movimiento utiliza una resolución máxima, una máscara y toma instantáneas cada segundo que el motiondect solo se basa en la detección para tomar imágenes.

Creé un pgm negro para el primero para deshabilitar completamente la detección de movimiento y solo tomar fotos cada segundo.

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

Para ejecutar movimiento uso nohup sudo motion > logfile.txt &

terminador de ratones
fuente