[Jde-dev] CameraServer y WebCam Philips

Roberto Calvo rocapal en libresoft.es
Mar Mar 23 19:58:31 CET 2010


Perfect David!!

Como ya no aparece la capabiliti concreta de la logitech (YUV2), la
webcam v4l1 funciona correctamente, sin problemas, y sin necesidad de
añadir el SrcPipeline.

Así me gusta mucho más, lo hacemos muy genérico para que funcione casi
cualquier cámara. Y si no vale con esa conf, cada uno se pica la suya.
Genial!

Thanks David!

El mar, 23-03-2010 a las 09:45 -0400, David Lobato escribió:
> Hola,
> 
> 
> Acabo de subir cambios en cameraserver para implementar las ideas que
> comentabamos en este hilo.
> 
> 
> Concretamente, he añadido un parametro SrcPipeline que permite indicar
> un pipeline en el formato de gstreamer (ver gst-launch para ejemplos).
> De modo que si necesitamos optimizar algo con relación al origen del
> flujo de video (camara, video, ...) pues simplemente ponemos el
> pipeline optimo y andando.
> 
> 
> Dicho parametro es prioritario con respecto al parametro Uri, es
> decir, si se encuentran ambos se usa SrcPipeline.
> 
> 
> El aspecto del pipeline que tenemos en cameraserver es el que se
> muestra en el gráfico adjunto.
> 
> 
> Pondré todo esto en le wiki.
> 
> 
> Rober, he añadido el manejo de v4l:// que no estaba subido. Pruebalo
> cuando tengas un momento, yo no tengo cámara v4l. 
> 
> 
> También me gustaría probar las cámaras fierwire. En teoria el
> protocolo dv:// está soportado, pero no tengo ni idea de que hay que
> poner a continuación y si permite seleccionar la cámara. Se supone que
> es una uri estandar en gnome, pero no he encontrado mucha información
> al respecto. Otra opción es especificar un pipeline usando dv1394src
> como fuente. Si alguien se anima a probar que comente el resultado.
> 
> 
> David.
> 
> 2010/3/21 Roberto Calvo <rocapal en libresoft.es>
>         
>         No hago causa, mientras esté el parámetro me vale :-) Ya
>         tendremos
>         tiempo de cambiarlo si no nos gusta donde lo pongamos.
>         
>         Así que como tu veas David.
>         
>         El sáb, 20-03-2010 a las 09:22 -0400, David Lobato escribió:
>         
>         > A mi me parece, que el formato va ligado a la fuente y me
>         parece que
>         > tiene mas sentido ponerlo en la propia uri.
>         >
>         >
>         > Independientemente del lugar, si ponemos el formato con un
>         string que
>         > nosotros definimos habrá que parsealo y encontrar el
>         equivalente con
>         > gstreamer. A priori, yo iría con el que usa gstreamer, salvo
>         que
>         > resulte que no hay funciones para parsearlo y tengamos que
>         hacerlas
>         > nosotros.
>         >
>         >
>         >
>         >
>         >
>         > 2010/3/20 Roberto Calvo <rocapal en libresoft.es>
>         >
>         >         Y que te parece si ponemos lo siguiente, siguiendo
>         con el
>         >         estilo que
>         >         hiciste del fichero de conf
>         >
>         >         CameraSrv.Camera.0.Uri=v4l2:///dev/video0
>         >
>         >         CameraSrv.Camera.0.Uri.Format=I420
>         >
>         >         ¿Cómo lo ves?
>         >
>         >         El vie, 19-03-2010 a las 10:15 -0400, David Lobato
>         escribió:
>         >
>         >         > Dado que el parametro está relacionado
>         concretamente con las
>         >         cámaras
>         >         > yo lo pondría como opción al especificar una uri
>         que empiece
>         >         con v4l o
>         >         > v4l2.
>         >         >
>         >         >
>         >         > Además dado que está ligado a gstreamer usaría el
>         formato
>         >         que ellos
>         >         > usan para especificar capabilities de video( algo
>         así
>         >         > video/x-raw-yuv,width=320,height=240,...)  cuando
>         las
>         >         indicas desde
>         >         > linea de comandos. No estoy seguro, pero supongo
>         que la
>         >         librería tiene
>         >         > funciones para transformar un string en caps y
>         viceversa.
>         >         Habría que
>         >         > buscarlo.
>         >         >
>         >         >
>         >         > Así la manera de especificar que una cámara
>         concreta debe
>         >         sacar los
>         >         > frames con un formato indicado sería:
>         >         >
>         >         >
>         >         > CameraSrv.Camera.0.Uri=v4l2:///dev/video0?formato
>         >         >
>         >         >
>         >         > He puesto ? por analogia con las url, pero vamos
>         podemos
>         >         poner otra
>         >         > cosa si os parece mejor.
>         >         >
>         >         >
>         >         > Cómo lo véis?
>         >         >
>         >         >
>         >         > David.
>         >         >
>         >         > 2010/3/18 JoseMaria <jmplaza en gsyc.es>
>         >         >         Idem. Lo veo bien como parámetro opcional,
>         de modo
>         >         que si no
>         >         >         se pone
>         >         >         nada el componente CameraServer lo hace lo
>         mejor que
>         >         puede por
>         >         >         defecto.
>         >         >         Muchas aplicaciones usarán justo el
>         componente así,
>         >         sin saber
>         >         >         muchos
>         >         >         detalles de las cámaras que tiene debajo.
>         >         >
>         >         >         Pero si para cierta cámara viene mejor tal
>         o cual
>         >         combinación,
>         >         >         es muy
>         >         >         útil que se pueda especificar vía fichero
>         de
>         >         configuración y
>         >         >         saltarse el
>         >         >         "por defecto" para que la captura se
>         ajuste mejor a
>         >         las
>         >         >         características
>         >         >         especiales de tal o cual cámara o los
>         requisitos de
>         >         tal o cual
>         >         >         aplicación.
>         >         >
>         >         >         JoseMaria
>         >         >
>         >         >         On Mon, 2010-03-15 at 14:35 +0100, Roberto
>         Calvo
>         >         wrote:
>         >         >         > El lun, 15-03-2010 a las 09:18 -0400,
>         David Lobato
>         >         escribió:
>         >         >         > > No veo tan claro que la solución sea
>         añadir otro
>         >         >         parámetro. Esto nos
>         >         >         > > obliga a caracterizar cada una de las
>         cámaras
>         >         que queramos
>         >         >         conectar y
>         >         >         > > apañar el código para cada cámara. Una
>         cosa es
>         >         que
>         >         >         soportemos
>         >         >         > > diferentes formatos de salida (RGB888,
>         YUY2,...)
>         >         >          estandarizados para
>         >         >         > > que el que reciba al otro lado sepa a
>         que
>         >         atenerse, y otra
>         >         >         es que haya
>         >         >         > > que controlar al milímetro que entra y
>         que sale.
>         >         A mi
>         >         >         parecer deja de
>         >         >         > > hacer simple el uso del componente.
>         >         >         >
>         >         >         > Podemos ponerlo como parámetro opcional
>         en el
>         >         fichero de
>         >         >         conf. No
>         >         >         > siempre es necesario utilizarlo, pero
>         hay veces
>         >         que viene
>         >         >         bien para no
>         >         >         > tener que compilar código. Un parámetro
>         opcional
>         >         lo veo
>         >         >         bastante bien.
>         >         >         >
>         >         >         > >
>         >         >         > >
>         >         >         > > Como solución para ir tirando lo
>         acepto, pero
>         >         creo que
>         >         >         tenemos que
>         >         >         > > investigar un poco mas sobre gstreamer
>         para ver
>         >         como
>         >         >         detectar las
>         >         >         > > "capabilities" que da la cámara con
>         código (99%
>         >         seguro de
>         >         >         que se
>         >         >         > > puede) y seleccionar aquella que mejor
>         se adapte
>         >         a la que
>         >         >         se espera
>         >         >         > > como salida (en principio con no
>         cambiar de
>         >         espacio de
>         >         >         colores seria
>         >         >         > > suficiente).
>         >         >         >
>         >         >         > Totalmente de acuerdo, si con gst-launch
>         es capaz
>         >         de
>         >         >         negociarlo, desde
>         >         >         > C++ también se puede hacer.
>         >         >         >
>         >         >         > Aún así, veo muy bueno y versátil
>         disponer de este
>         >         parámetro
>         >         >         opcional en
>         >         >         > el fichero de configuración, ya que nos
>         permite
>         >         modificar el
>         >         >         > comportamiento de cameraserver sin
>         necesidad de
>         >         cambiar
>         >         >         código. Aunque
>         >         >         > nos de gstreamer las "capabilities",
>         dejaría la
>         >         opción de
>         >         >         detallarle en
>         >         >         > el fichero de conf el formato que
>         queremos.
>         >         >         >
>         >         >         > Cada cámara y cada linux es un mundo,
>         por lo que
>         >         creo que
>         >         >         nos vendrá muy
>         >         >         > bien disponer del máximo detalle en los
>         ficheros
>         >         de conf.
>         >         >         Eso si, con
>         >         >         > parámetros opcionales, que podamos
>         arrancar un
>         >         cameraserver
>         >         >         con las
>         >         >         > mínimas líneas de conf tambien es
>         importante.
>         >         >         >
>         >         >         > un saludo!
>         >         >         >
>         >         >         > >
>         >         >         > >
>         >         >         > > En cuanto al vloopback funcionando con
>         todo,
>         >         enhorabuena!
>         >         >         Los números
>         >         >         > > pintan bastante bien.
>         >         >         > >
>         >         >         > >
>         >         >         > > David.
>         >         >         > >
>         >         >         > > 2010/3/15 JoseMaria <jmplaza en gsyc.es>
>         >         >         > >         Estupendo!!
>         >         >         > >
>         >         >         > >         Sip, habría que añadir al
>         fichero de
>         >         configuración
>         >         >         ese nuevo
>         >         >         > >         parámetro.
>         >         >         > >
>         >         >         > >         David está preparando la
>         descripción en
>         >         el manual
>         >         >         5.0 de
>         >         >         > >         cameraServer,
>         >         >         > >         cameraViewer, etc. Buen sitio
>         para
>         >         comentar cómo
>         >         >         se usan estos
>         >         >         > >         componentes, cómo se
>         configuran,
>         >         brevemente cómo
>         >         >         están hechos
>         >         >         > >         por
>         >         >         > >         dentro, etc. A ver si esta
>         semana
>         >         conseguimos
>         >         >         cerrar una
>         >         >         > >         descripción
>         >         >         > >         buena en el manual de ellos,
>         que ya
>         >         somos
>         >         >         bastantes los que
>         >         >         > >         estamos
>         >         >         > >         usándolos.
>         >         >         > >
>         >         >         > >         Ánimo,
>         >         >         > >
>         >         >         > >         JoseMaria
>         >         >         > >
>         >         >         > >         On Sun, 2010-03-14 at 23:18
>         +0100,
>         >         Roberto Calvo
>         >         >         wrote:
>         >         >         > >         > Al fin he conseguido hacerlo
>         >         funcionar. La
>         >         >         solución, como no
>         >         >         > >         soporta
>         >         >         > >         > YUY2, es mirar que formato
>         soporta, y
>         >         lo que he
>         >         >         encontrado
>         >         >         > >         es que esta
>         >         >         > >         > cámara soporte I420
>         >         >         > >         > Label         FOURCC in Hex
>         >         Bits per
>         >         >         pixel
>         >         >         > >            Description
>         >         >         > >         > I420          0x30323449
>         >          12
>         >         >         > >            8 bit Y plane followed by 8
>         bit 2x2
>         >         subsampled
>         >         >         U and V
>         >         >         > >         planes.
>         >         >         > >         >
>         >         >         > >         > Más info en [1]
>         >         >         > >         >
>         >         >         > >         > Por lo que el código, lo
>         único que
>         >         cambia es lo
>         >         >         siguiente:
>         >         >         > >         >
>         >         >         > >         >      v4l2caps =
>         gst_caps_new_simple
>         >         >         ("video/x-raw-yuv",
>         >         >         > >         >
>         >          "format",
>         >         >         > >         GST_TYPE_FOURCC,
>         >         >         > >         >
>         >         >         > >
>          GST_MAKE_FOURCC('I','4','2','0'),
>         >         >         > >         >
>         >          NULL);
>         >         >         > >         >
>         >         >         > >         >
>         >         >         > >         > David, quizás deberíamos
>         añadir al
>         >         fichero de
>         >         >         conf de camera
>         >         >         > >         server este
>         >         >         > >         > parámetro (formato en el que
>         queremos
>         >         recoger la
>         >         >         imagen de
>         >         >         > >         la cámara,
>         >         >         > >         > para optimizar el proceso
>         como has
>         >         dicho), y
>         >         >         añadirlo al que
>         >         >         > >         ya tenemos,
>         >         >         > >         > que es formato que ofrece el
>         servidor.
>         >         ¿Te
>         >         >         parece?
>         >         >         > >         >
>         >         >         > >         > Por cierto, funciona todo
>         bien ya
>         >         sobre el
>         >         >         módulo vloopback,
>         >         >         > >         que ya era
>         >         >         > >         > hora :-))
>         >         >         > >         >
>         >         >         > >         > Algunos datos interesantes
>         probados en
>         >         la
>         >         >         miniITX (1.5Ghz)
>         >         >         > >         >
>         >         >         > >         > CameraServer + Vloopback = ~
>         5% de CPU
>         >         >         > >         > CameraServer + Vloopback +
>         ffmpeg
>         >         grabando = ~
>         >         >         20% de CPU
>         >         >         > >         >
>         >         >         > >         > un saludete!
>         >         >         > >         >
>         >         >         > >         > [1]
>         http://www.fourcc.org/yuv.php
>         >         >         > >         >
>         >         >         > >         >
>         >         >         > >         > El dom, 14-03-2010 a las
>         22:05 +0100,
>         >         Roberto
>         >         >         Calvo
>         >         >         > >         escribió:
>         >         >         > >         > > Thanks por la
>         explicación!!, ahora
>         >         lo voy
>         >         >         teniendo más
>         >         >         > >         claro.
>         >         >         > >         > >
>         >         >         > >         > > Lo primero que he hecho es
>         ejecutar
>         >         el comando
>         >         >         desde
>         >         >         > >         consola, para ver
>         >         >         > >         > > si es capaz de negociar
>         gstreamer
>         >         con esta
>         >         >         cámara. Y si es
>         >         >         > >         capaz, ya que
>         >         >         > >         > > termina por mostrar la
>         imagen y
>         >         negociar con
>         >         >         los
>         >         >         > >         siguientes parámetros:
>         >         >         > >         > >
>         >         >         > >         >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstXImageSink:ximagesink0.GstPad:sink:
>         >         >         > >         > >     caps =
>         video/x-raw-rgb,
>         >         bpp=(int)16,
>         >         >         depth=(int)16,
>         >         >         > >         endianness=(int)1234,
>         >         >         > >         > >     red_mask=(int)63488,
>         >         green_mask=(int)2016,
>         >         >         > >         blue_mask=(int)31,
>         width=(int)320,
>         >         >         > >         > >     height=(int)240,
>         >         framerate=(fraction)15/2,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > >
>         >         >         > >         > >
>         >         >         > >         > > He modificado el código
>         para la
>         >         parte donde se
>         >         >         generar los
>         >         >         > >         pipelines, en
>         >         >         > >         > > el caso que conectamos un
>         >         dispositivo v4l2
>         >         >         (descomentado
>         >         >         > >         la parte de
>         >         >         > >         > > v4l2caps y caps, también
>         he probado
>         >         sólo
>         >         >         dejando caps);
>         >         >         > >         > >
>         >         >         > >         > >
>         >         >         > >         > >   else if
>         >         (config_.uri.find("v4l://") ==
>         >         >         0){/*handle v4l2
>         >         >         > >         source*/
>         >         >         > >         > >       std::string dev =
>         >         >         config_.uri.substr(6);/*after
>         >         >         > >         v4l2://*/
>         >         >         > >         > >       source =
>         >         >         > >
>         >         gst_element_factory_make("v4lsrc","source");
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         g_object_set(G_OBJECT(source),"device",dev.c_str(),NULL);
>         >         >         > >         > >       sink =
>         >         >
>         gst_element_factory_make("appsink","sink");
>         >         >         > >         > >
>         >         >
>         g_object_set(G_OBJECT(sink),"drop",1,NULL);
>         >         >         > >         > >
>         >         >
>         g_object_set(G_OBJECT(sink),"max-buffers",16,NULL);
>         >         >         > >         > >
>         >         >         > >         > >       videocolor =
>         >         >         > >
>         >         >
>         >
>         gst_element_factory_make("ffmpegcolorspace","videocolor");
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         gst_bin_add_many(GST_BIN(pipeline),source,videocolor,sink,NULL);
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>           //gst_element_link_filtered(source,videocolor,v4l2caps);
>         >         >         > >         > >
>         >         >
>           //gst_element_link_filtered(videocolor,sink,caps);
>         >         >         > >         > >     }
>         >         >         > >         > >
>         >         >         > >         > >
>         >         >         > >         > > Después de estar un rato
>         negociando,
>         >         sale el
>         >         >         siguiente
>         >         >         > >         mensaje.
>         >         >         > >         > >
>         >         >         > >         > > info: Starting thread for
>         camera:
>         >         cameraA
>         >         >         > >         > > error: Error: Error en el
>         flujo de
>         >         datos
>         >         >         interno.
>         >         >         > >         > >
>         >         >         > >         > >
>         >         >         > >         > > Sigo probado
>         configuraciones, a ver
>         >         que puede
>         >         >         estar
>         >         >         > >         pasando ....
>         >         >         > >         > >
>         >         >         > >         > > El sáb, 13-03-2010 a las
>         17:10
>         >         -0500, David
>         >         >         Lobato
>         >         >         > >         escribió:
>         >         >         > >         > > > Hola,
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > El error "Could not
>         negociate
>         >         format" sale
>         >         >         cuando alguno
>         >         >         > >         de los
>         >         >         > >         > > > componentes del pipeline
>         no puede
>         >         funcionar
>         >         >         en el
>         >         >         > >         formato que le
>         >         >         > >         > > > estamos pidiendo.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > El pipeline que hay para
>         v4l2 está
>         >         bastante
>         >         >         optimizado
>         >         >         > >         para a las
>         >         >         > >         > > > cámaras logitech, ya que
>         es la que
>         >         tengo mas
>         >         >         a mano.
>         >         >         > >         Para que funcione
>         >         >         > >         > > > con otras cámaras
>         tenemos que
>         >         hacer un poco
>         >         >         mas
>         >         >         > >         genérico. Lo que
>         >         >         > >         > > > tenemos ahora es:
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > camara ----->
>         ffmpegcolorspaces
>         >         ------>
>         >         >         appsink
>         >         >         > >         > > >               |
>         >         >                |
>         >         >         > >         > > >           v4l2caps
>         >         >         caps
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Gstreamer es capaz de
>         negociar el
>         >         formato de
>         >         >         los datos
>         >         >         > >         que cada
>         >         >         > >         > > > componente intercambia
>         entre si,
>         >         pero
>         >         >         también te deja
>         >         >         > >         especificar
>         >         >         > >         > > > dicho formato con lo que
>         se
>         >         denominan
>         >         >         "capabilities" que
>         >         >         > >         vienen a ser
>         >         >         > >         > > > una descripción del
>         formato.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Así en nuestro pipeline
>         tenemos un
>         >         >         componente camara, el
>         >         >         > >         componente
>         >         >         > >         > > > ffmpegcolorspaces que es
>         capaz de
>         >         traducir
>         >         >         de un espacio
>         >         >         > >         de color a
>         >         >         > >         > > > otro y el componente
>         appsink, que
>         >         es un
>         >         >         buffer que
>         >         >         > >         almacena los frames
>         >         >         > >         > > > hasta que se los
>         pedimos. Además,
>         >         "caps"
>         >         >         seleccionan el
>         >         >         > >         formato que
>         >         >         > >         > > > hemos configurado en el
>         fichero
>         >         cfg, de modo
>         >         >         que los
>         >         >         > >         frames que
>         >         >         > >         > > > appsink nos da van en el
>         formato
>         >         que
>         >         >         queremos (YUY2,
>         >         >         > >         RGB888, GRAY8 por
>         >         >         > >         > > > el momento).
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Para el caso concreto de
>         las
>         >         cámaras
>         >         >         logitech, estas son
>         >         >         > >         capaces de
>         >         >         > >         > > > generar datos en yuy2
>         (YUV422) y
>         >         jpeg de
>         >         >         forma nativa
>         >         >         > >         sin ninguna
>         >         >         > >         > > > transformación software.
>         Pero por
>         >         alguna
>         >         >         razón que
>         >         >         > >         desconozco cuando
>         >         >         > >         > > > montas el pipeline con
>         los
>         >         elementos
>         >         >         comentados (sin
>         >         >         > >         contar v4l2caps)
>         >         >         > >         > > > el formato que negocia
>         la cámara
>         >         con
>         >         >         ffmpegcolorspaces
>         >         >         > >         no es ninguno
>         >         >         > >         > > > de los nativos por lo
>         que se hace
>         >         una
>         >         >         conversión extra
>         >         >         > >         (ver ejecución
>         >         >         > >         > > > al final del mail). Para
>         evitar
>         >         esto añadí
>         >         >         al pipeline
>         >         >         > >         "v4l2caps" que
>         >         >         > >         > > > fijan el formato a YUY2
>         eliminando
>         >         la
>         >         >         conversión extra.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Esto se hace
>         concretamente aquí:
>         >         >         > >         > > >
>         >         >
>         >
>         st_element_link_filtered(source,videocolor,v4l2caps);
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > El problema viene cuando
>         pones una
>         >         cámara
>         >         >         que no puede
>         >         >         > >         generar dicho
>         >         >         > >         > > > formato, como parece ser
>         el
>         >         problema de la
>         >         >         philips. Así,
>         >         >         > >         creo que la
>         >         >         > >         > > > solución es simplemente
>         quitar
>         >         v4l2caps y
>         >         >         dejar que se
>         >         >         > >         negocie el
>         >         >         > >         > > > formato, a costa de que
>         no sea el
>         >         mas
>         >         >         optimo, pero
>         >         >         > >         ganando el soporte
>         >         >         > >         > > > de mas cámaras.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > También cabe la
>         posibilidad de que
>         >         haya
>         >         >         alguna manera
>         >         >         > >         mejor de
>         >         >         > >         > > > hacerlo, que yo de
>         momento no he
>         >         >         descubierto. En cuanto
>         >         >         > >         tenga mas
>         >         >         > >         > > > tiempo, me gustaría
>         descubrir un
>         >         poco mas de
>         >         >         gstreamer,
>         >         >         > >         que parece
>         >         >         > >         > > > bastante interesante y
>         potente
>         >         para lo que
>         >         >         buscamos.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Espero haber aclarado el
>         asunto.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Un saludo,
>         >         >         > >         > > > David.
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > Ejecución que muestra la
>         >         negociación camara
>         >         >         > >         ffmpegcolorspaces:
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > gst-launch-0.10 -v
>         v4l2src
>         >         >         device=/dev/video2 !
>         >         >         > >         ffmpegcolorspace !
>         >         >         > >         > > >
>         >         video/x-raw-rgb,width=320,height=240 !
>         >         >         ximagesink
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > (gst-launch-0.10:2960):
>         >         GLib-WARNING **:
>         >         >         g_set_prgname()
>         >         >         > >         called
>         >         >         > >         > > > multiple times
>         >         >         > >         > > > Setting pipeline to
>         PAUSED ...
>         >         >         > >         > > > Xlib:  extension
>         "Generic Event
>         >         Extension"
>         >         >         missing on
>         >         >         > >         display
>         >         >         > >         > > > "localhost:10.0".
>         >         >         > >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstV4l2Src:v4l2src0.GstPad:src:
>         >         >         > >         caps =
>         >         >         > >         > > > video/x-raw-yuv,
>         >         format=(fourcc)I420,
>         >         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > > > Pipeline is live and
>         does not need
>         >         >         PREROLL ...
>         >         >         > >         > > > Setting pipeline to
>         PLAYING ...
>         >         >         > >         > > > New clock:
>         GstSystemClock
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src:
>         >         >         > >         caps =
>         >         >         > >         > > > video/x-raw-rgb,
>         bpp=(int)32,
>         >         depth=(int)24,
>         >         >         > >         endianness=(int)4321,
>         >         >         > >         > > > red_mask=(int)65280,
>         >         >         green_mask=(int)16711680,
>         >         >         > >         > > >
>         blue_mask=(int)-16777216,
>         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink:
>         >         >         > >         caps =
>         >         >         > >         > > > video/x-raw-yuv,
>         >         format=(fourcc)I420,
>         >         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src:
>         >         >         > >         caps =
>         >         >         > >         > > > video/x-raw-rgb,
>         bpp=(int)32,
>         >         depth=(int)24,
>         >         >         > >         endianness=(int)4321,
>         >         >         > >         > > > red_mask=(int)65280,
>         >         >         green_mask=(int)16711680,
>         >         >         > >         > > >
>         blue_mask=(int)-16777216,
>         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps =
>         >         >         > >         > > > video/x-raw-rgb,
>         bpp=(int)32,
>         >         depth=(int)24,
>         >         >         > >         endianness=(int)4321,
>         >         >         > >         > > > red_mask=(int)65280,
>         >         >         green_mask=(int)16711680,
>         >         >         > >         > > >
>         blue_mask=(int)-16777216,
>         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         > /GstPipeline:pipeline0/GstXImageSink:ximagesink0.GstPad:sink: caps =
>         >         >         > >         > > > video/x-raw-rgb,
>         bpp=(int)32,
>         >         depth=(int)24,
>         >         >         > >         endianness=(int)4321,
>         >         >         > >         > > > red_mask=(int)65280,
>         >         >         green_mask=(int)16711680,
>         >         >         > >         > > >
>         blue_mask=(int)-16777216,
>         >         width=(int)320,
>         >         >         > >         height=(int)240,
>         >         >         > >         > > >
>         framerate=(fraction)30/1,
>         >         >         > >
>         pixel-aspect-ratio=(fraction)1/1
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > > 2010/3/13 Roberto Calvo
>         >         >         <rocapal en libresoft.es>
>         >         >         > >         > > >
>         >         >         > >         > > >         Buenas,
>         >         >         > >         > > >
>         >         >         > >         > > >         Al arrancar el
>         >         CameraServer contra
>         >         >         la webcam
>         >         >         > >         Philips V4l , me
>         >         >         > >         > > >         da este error:
>         >         >         > >         > > >
>         >         >         > >         > > >         error: Error:
>         Could not
>         >         negotiate
>         >         >         format
>         >         >         > >         > > >
>         >         >         > >         > > >         Y en el dmesg
>         sale esto
>         >         (parece que
>         >         >         no consigue
>         >         >         > >         poner los fps
>         >         >         > >         > > >         adecuados).
>         >         >         > >         > > >
>         >         >         > >         > > >         [14566.456664]
>         pwc: Failed
>         >         to set
>         >         >         video mode
>         >         >         > >         SIF en 1 fps; return
>         >         >         > >         > > >         code = -22
>         >         >         > >         > > >         [14566.613554]
>         pwc: Failed
>         >         to set
>         >         >         video mode
>         >         >         > >         SIF en 2 fps; return
>         >         >         > >         > > >         code = -22
>         >         >         > >         > > >         [14566.766625]
>         pwc: Failed
>         >         to set
>         >         >         video mode
>         >         >         > >         SIF en 3 fps; return
>         >         >         > >         > > >         code = -22
>         >         >         > >         > > >         [14566.927300]
>         pwc: Failed
>         >         to set
>         >         >         video mode
>         >         >         > >         SIF en 4 fps; return
>         >         >         > >         > > >         code = -22
>         >         >         > >         > > >         [14571.280324]
>         pwc: Failed
>         >         to set
>         >         >         video mode
>         >         >         > >         SIF en 31 fps;
>         >         >         > >         > > >         return code =
>         -22
>         >         >         > >         > > >
>         >         >         > >         > > >         David, añadí la
>         opción
>         >         para v4l al
>         >         >         cameraserver:
>         >         >         > >         > > >
>         >         >         > >         > > >          else if
>         >         (config_.uri.find("v4l://")
>         >         >         ==
>         >         >         > >         0){/*handle v4l2
>         >         >         > >         > > >         source*/
>         >         >         > >         > > >              std::string
>         dev =
>         >         >         > >         config_.uri.substr(6);/*after
>         v4l2://*/
>         >         >         > >         > > >              source =
>         >         >         > >
>         >         gst_element_factory_make("v4lsrc","source");
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>         >
>          g_object_set(G_OBJECT(source),"device",dev.c_str(),NULL);
>         >         >         > >         > > >              sink =
>         >         >         > >
>         >         gst_element_factory_make("appsink","sink");
>         >         >         > >         > > >
>         >         >
>          g_object_set(G_OBJECT(sink),"drop",1,NULL);
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>          g_object_set(G_OBJECT(sink),"max-buffers",16,NULL);
>         >         >         > >         > > >
>         >         >         > >         > > >              videocolor
>         =
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>         >
>         gst_element_factory_make("ffmpegcolorspace","videocolor");
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>         >
>          gst_bin_add_many(GST_BIN(pipeline),source,videocolor,sink,NULL);
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>         >
>          gst_element_link_filtered(source,videocolor,v4l2caps);
>         >         >         > >         > > >
>         >         >         > >
>         >          gst_element_link_filtered(videocolor,sink,caps);
>         >         >         > >         > > >            }
>         >         >         > >         > > >
>         >         >         > >         > > >         ¿Ves que puede
>         estar
>         >         pasando?
>         >         >         > >         > > >
>         >         >         > >         > > >         un saludete!
>         >         >         > >         > > >
>         >         >         > >         > > >         --
>         >         >         > >         > > >         Roberto Calvo
>         Palomino
>         >                |
>         >         >         Libre
>         >         >         > >         Software Engineering
>         >         >         > >         > > >         Lab (GSyC)
>         >         >         > >         > > >         Tel: (+34) 91
>         488 85 23
>         >         |
>         >         >         Universidad
>         >         >         > >         Rey Juan Carlos
>         >         >         > >         > > >
>         rocapal en libresoft.es
>         >                |
>         >         >         Edif.
>         >         >         > >         Departamental II -
>         >         >         > >         > > >         Despacho 116
>         >         >         > >         > > >
>         http://libresoft.es/
>         >                |
>         >         >         c/Tulipán s/n
>         >         >         > >         28933 Móstoles
>         >         >         > >         > > >         (Madrid)
>         >         >         > >         > > >
>         >         >         > >         > > >         GPG-KEY:
>         >         >         http://gsyc.es/~rocapal/rocapal.gpg
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >         > >         > > >
>         >         >
>         _______________________________________________
>         >         >         > >         > > > Jde-developers mailing
>         list
>         >         >         > >         > > > Jde-developers en gsyc.es
>         >         >         > >         > > >
>         >         >         > >
>         >         >
>         >
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         >         >         > >         > >
>         >         >         > >         > >
>         >         >
>         _______________________________________________
>         >         >         > >         > > Jde-developers mailing
>         list
>         >         >         > >         > > Jde-developers en gsyc.es
>         >         >         > >         > >
>         >         >         > >
>         >         >
>         >
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         >         >         > >         >
>         >         >         > >         >
>         >         _______________________________________________
>         >         >         > >         > Jde-developers mailing list
>         >         >         > >         > Jde-developers en gsyc.es
>         >         >         > >         >
>         >         >         > >
>         >         >
>         >
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         >         >         > >         --
>         >         >         > >         http://gsyc.es/jmplaza
>         >         >         > >         Universidad Rey Juan Carlos
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         >         >         > >
>         _______________________________________________
>         >         >         > > Jde-developers mailing list
>         >         >         > > Jde-developers en gsyc.es
>         >         >         > >
>         >         >
>         >
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         >         >         >
>         >         >
>         >         >
>         >         >         --
>         >         >         http://gsyc.es/jmplaza
>         >         >         Universidad Rey Juan Carlos
>         >         >
>         >         >
>         >         >
>         >         >
>         >         >
>         >
>         >
>         >         --
>         >
>         >         Roberto Calvo Palomino          | Libre Software
>         Engineering
>         >         Lab (GSyC)
>         >         Tel: (+34) 91 488 85 23         | Universidad Rey
>         Juan Carlos
>         >         rocapal en libresoft.es            | Edif.
>         Departamental II -
>         >         Despacho 116
>         >         http://libresoft.es/            | c/Tulipán s/n
>         28933 Móstoles
>         >         (Madrid)
>         >
>         >         GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>         >
>         >
>         >
>         > _______________________________________________
>         > Jde-developers mailing list
>         > Jde-developers en gsyc.es
>         >
>         http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>         
>         
>         --
>         
>         Roberto Calvo Palomino          | Libre Software Engineering
>         Lab (GSyC)
>         Tel: (+34) 91 488 85 23         | Universidad Rey Juan Carlos
>         rocapal en libresoft.es            | Edif. Departamental II -
>         Despacho 116
>         http://libresoft.es/            | c/Tulipán s/n 28933 Móstoles
>         (Madrid)
>         
>         GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>         
> 
> 
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers

-- 
Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC)
Tel: (+34) 91 488 85 23         | Universidad Rey Juan Carlos
rocapal en libresoft.es            | Edif. Departamental II - Despacho 116
http://libresoft.es/            | c/Tulipán s/n 28933 Móstoles (Madrid)

GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
------------ prxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 198 bytes
Descripción: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
 digitalmente
Url        : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20100323/cc2c1ec4/attachment-0001.pgp 


More information about the Jde-developers mailing list