Estoy buscando una herramienta de línea de comandos que pueda tomar una foto de una cámara web tan rápido como sea posible y escribelo a la salida estándar. Además, me gustaría poder especificar configuraciones como el formato de entrada, la resolución y el formato de salida.
Mi primer intento fue ffmpeg:
ffmpeg -f video4linux2 -video_size 1920x1080 -input_format yuyv422 -i /dev/video0 -f image2 -frames:v 1 -qscale:v 2 pipe:1
Sin embargo, esto tiene dos inconvenientes:
Se tarda unos 3 segundos hasta que la imagen se escribe en la salida estándar, lo que parece deberse al tiempo que la cámara web necesita para iniciarse.
La imagen tomada de esta manera es bastante oscura, probablemente la cámara web necesite capturar los fotogramas de un video para ajustar el brillo, etc.
Mi siguiente idea es capturar continuamente los cuadros de video de la cámara web (es decir, "mantener la cámara web activa"), transmitir estos cuadros de video algun lado y, a continuación, tome fotogramas de vídeo individuales y conviértalos en una imagen bajo demanda. Sin embargo, no sé cómo hacer esto (y si hay una manera mejor).
EDITAR: Necesito un comando único que escriba la imagen en la salida estándar, por lo que puedo usarlo en un servidor http para servir una solicitud GET de http. Debe ser rápido, porque tomar la fotografía está bloqueando un proceso mecánico en una máquina.