No se puede capturar video usando OpenCv

9

Instalé OpenCv 2.3.1 en mi raspberry pi (Debian Wheezy) siguiendo este tutorial.

Pero no puedo grabar videos usando mi cámara web USB. Gstreamer muestra este error:

OpenCV Error: Unsupported format or combination of formats (Gstreamer Opencv backend doesn't support this codec acutally.) in CvVideoWriter_GStreamer::open, file /home/pi/OpenCV-2.3.1/modules/highgui/src/cap_gstreamer.cpp, line 483 terminate called after throwing an instance of 'cv::Exception' what(): /home/pi/OpenCV-2.3.1/modules/highgui/src/cap_gstreamer.cpp:483: error: (-210) Gstreamer Opencv backend doesn't support this codec acutally. in function CvVideoWriter_GStreamer::open Aborted

¿Qué puedo hacer a continuación?

sumith
fuente
¿Qué cámara web estás usando?
Alex Chamberlain
Hola, estoy usando el módulo e-CAM30_USB. Puedo tomar imágenes con esta cámara. Estoy usando raspberry pi con Debian Wheezy. FFMPEG está activado. Todavía estoy enfrentando un problema. Por favor, ayúdame.
sumith

Respuestas:

7

El gstreamer te dice que la transmisión no es compatible. FFMPEG está encendido como dijiste.

Eché un vistazo a las especificaciones de la cámara: proviene de una computadora portátil y está diseñada para funcionar con Microsoft Windows principalmente y no es realmente compatible con Linux, pero dicen que funcionará en Redhat 2. +

Esa cámara devuelve video de estos códecs

  • YUY2 (¿FFMPEG APAGADO?)
  • MJPEG (¿FFMPEG ENCENDIDO?)

Las imágenes fijas son un JPG estándar codificado por el codificador MJPEG, por eso puedes verlo. Estoy seguro de que gstreamer es compatible con MJPEG y no estoy seguro acerca de YUV2. ¡Pero! Es posible que la implementación de MJPEG para la arquitectura ARM (Pi) aún no sea compatible.

Posiblemente, gstreamer necesita pedirle a la cámara MJPEG directamente o algo más debe pedirlo. Dudo que YUY2 funcione bien en el Pi. (Al menos no figura en ningún códec compatible, pero MJPG sí lo está)

Es posible que deba usar algo que no sea gstreamer. Echa un vistazo aquí. o en esta publicación.

EDITAR

OP resolvió el problema usando image 2012-09-18-wheezy-raspbiane instalando OpenCV 2.4.2usando esta guía extensa y larga .

Piotr Kula
fuente
¿Qué quieren decir con FFMPEG activado / desactivado?
Alex Chamberlain
1
La cámara tiene una configuración en algún lugar para elegir el formato de video. YUY2 es sin comprimir, más rápido y de mejor calidad. Al habilitar esta función MPEG, lo más probable es que intente transportar el video usando MJPEG (que son series de archivos JPG que no son realmente un formato de video sofisticado). ¡Quizás usar gstreamer no sea la solución!
Piotr Kula
Hola, tengo mucho gusto en informarles, el problema ha terminado. Lo que hice es: 1. Instalé una nueva imagen 2012-09-18-wheezy-raspbian.img en mi raspberry pi. Ref: elinux.org/RPi_Easy_SD_Card_Setup 2. Luego instalé OpenCV 2.4.2 siguiendo el sitio Ref: mitchtech.net/raspberry-pi-opencv Ahora puedo tomar videos con la cámara web logitech hd720p usb. Gracias a vuestro apoyo. Pero me interesa saber por qué esta tarea muestra problemas en opencv 2.3.1.
sumith
Hola, señor ppumkin, traté de tomar imágenes con la cámara web Econ Ecam-32 usando mjpg-streamer como usted dijo, pero aún así obtuve malas imágenes mientras logitech cam funciona bien. Ref: tanzilli.com/video_streaming . ¿Podemos hacer algo más?
sumith
1

Raspberry pi está trabajando con la cámara web e-con ECAM 32 ahora. Cambié el regulador de voltaje que entrega 3.3v a la cámara, y conecté el regulador de voltaje TPS736xx de los instrumentos de Texas y ahora la cámara toma imágenes y videos de 320x240 píxeles ...

Muchas gracias por tu apoyo ...

sumith
fuente