[Jde-dev] ejemplo ice+gstreamer

David Lobato dav.lobato en gmail.com
Vie Oct 23 13:58:53 CEST 2009


2009/10/23 Roberto Calvo <rocapal en gsyc.es>

> El mar, 20-10-2009 a las 00:42 +0200, David Lobato escribió:
> >
> >
> >
> >         Genial, también esta compilada una nueva versión de ffmpeg.
> >         Comprueba si
> >         funciona correctamente el gst-launch con gstreamer-ffmpeg que
> >         es el
> >         pluginque más dudas tengo que rule bien.
> >
> > He probado un pipe con ffmpegcolorspace, y funcionaba bien. Veremos si
> > funciona correctamente si hacemos alguna codificación, aunque de
> > momento no creo que lo usemos.
> >
> >
> >         Ayer envié el correo y se lo quedó la lista, y en ese momento
> >         no estaba
> >         gstreamer0.10-ffmpeg, pero ahora mismo si lo has instalado si
> >         está. El
> >         único que me queda es gstreamer0.10-nice que justo tiene que
> >         ver con
> >         ICE.
> >
> >
> > No tengo ni idea de que hay dentro de ese paquete... has visto algo
> > interesante??
> >
>
> Estas librerías, casi na :-)
>
> /usr/lib/gstreamer-0.10/libgstffmpeg.so
> /usr/lib/gstreamer-0.10/libgstffmpegscale.so
> /usr/lib/gstreamer-0.10/libgstpostproc.so
>
>

Pues va a ser que las necesitamos... ;)


>
> >
> >         > No me gusta mucho el asunto de tener que compilar todo eso,
> >         pero bueno. De momento tiramos así y si vemos una manera mejor
> >         pues lo cambiamos.
> >
> >
> >         Ten en cuenta que es de la mejor forma que se pueden hacer
> >         estas cosas (al menos que yo conozca). Lo que cuesta es el
> >         hecho de compilar, pero eso ya está hecho :-) Aunque sea
> >         costoso este metodo, ganamos en que controlamos todos los
> >         paquetes y decidimos qué actualizar y qué no.
> >
> >         Es mejor compilar 70-80 paquetes y tener un sistema estable
> >         (lenny), a tener 600 paquetes de testing :-) Además, al ser
> >         lenny muy reciente, no hay excesivos problemas para compilar.
> >
> >
> > Ok, me parece bien. Si tu no ves problema. Yo es que es oir compilar
> > cosas y me entra la pereza... Aunque entiendo que con debian es mas o
> > menos automático.
>
> Si, si la pereza no nos la quita nadie. Sería diferente a si tuviéramos
> que generar nosotros los paquetes y compilar. Pero con debian, te bajas
> las fuentes, lanzas dpkg-buildpackage y cruzas los dedos :-)
>
>
No se hablé mas.



>
> >
> > Te adjunto el ejemplo que nos traemos entre manos. Ahora se saca el
> > video directamente en YUV2 de la webcam y se transmite así. El visor
> > hace una transformación básica a escala de grises.
> >
> > Resultados, el servidor no sube del 2% y el cliente convirtiendo se
> > pone al 15% y sólo recibiendo al 2%.
> > Pruebalo cuando tengas un momento en la pico.
>
> El servidor arrancado, consume del 2% al 5% a 640x480 :-)  y si conecto
> el cliente en otra máquina, el consumo llega hasta el 12%-15%
>
>
Perdona, los porcentajes que envié los saqué a 320x240 a 30fps. Probando a
640x480 30fps obtengo resultados parecidos.


> Por cierto, en el cliente la imagen la obtengo con un poco de LAG, pero
> visualmente si me parece que va cerca de los 25fps, sin embargo la GUI
> muestra 7-8 (creo que es imposible).
>
>
Si, yo también veo una latencia importante. Creo que gstremer tiene algo
para ajustar estas cosas. De todas formas, bajando los fps a 15 es
aceptable, no creo que transmitamos a 30fps, no?

El contador de la GUI es mas robusto ahora, debería dar la cuenta bien.
Prueba a cambiar las condiciones de luz de la cámara y fijaté si varían los
fps. Te sugiero que pruebes el modo de exposición automático, ajustandolo
con el paquete que envié. Cambios?



> El cliente ejecutado en la pico rondaba el 35% pero no es muy fiable,
> porque lo ejecuto a través de vnc y el rendimiento gráfico así es
> penoso. Aunque tampoco importa mucho cuanto consume el cliente en la
> pico, porque normalmente no se va a ejecutar.
>

La mayor parte de CPU se va en transformación YUV->RGB. Podemos evitar este
paso usando la extension Xv del servidor X, que permite usar YUV
directamente (está pensada para mostrar stream de video con alto
rendimiento). Aunque no he dado con la manera buena de hacerlo con GTK.


>
> Creo que es una muy buena aproximación la que has hecho David :-)
>
> Me gustaría saber cuanto de costoso es en el cliente, pasar a RGB
> mediante una tabla estilo libcolorspaces (o incluso hacer esta
> conversión en el servidor). Por que si por ejemplo, si en el servidor
> convertimos a RGB utilizando libcolorspaces, y eso sube un 5%, creo que
> es asumible para que todos los componentes trabajen con RGB.
>
> ¿Cómo lo ves?
>
>
Veo que habría que justificar que necesitamos RGB, ya que por el momento YUV
nos da alguna ventaja. La mas destacable es que YUV2, el formato que saca la
cámara directamente, usa un 33% menos de datos que RGB para transmitir la
misma información (la cámara no da RGB directamente), ya que obtenemos 2
pixels RGB (6bytes) por cada 4bytes YUV.

Esto en local quizá no importe, pero si transmitimos por la red creo que es
mejor solución.

Lo dicho, habrá que ver los beneficios/contras de usar cada uno de los
formatos.


David.


>
> > Saludetes,
> > David.
> >
> >
> >
> >
> >
> >         >
> >         > Te comento cuando haga mas pruebas.
> >         >
> >         > David.
> >         >
> >         > 2009/10/15 Roberto Calvo <rocapal en gsyc.es>
> >         >         David,
> >         >
> >         >         Ya tengo algo, no lo tengo completo pero puedes
> >         hacer pruebas.
> >         >
> >         >         Los tienes en [1] y con la siguiente linea lo añades
> >         al
> >         >         source.list
> >         >
> >         >         deb http://jde.gsyc.es/apt/ lenny gstreamer
> >         >
> >         >         Como ves, hay casi 50 paquetes debian, ha costado el
> >         jodido
> >         >         backport, es
> >         >         la recursividad llevada al limite jeje. Lo único que
> >         me
> >         >         preocupa es que
> >         >         he tenido que compilar también la glib2.0, pero ha
> >         compilado
> >         >         correctamente.
> >         >
> >         >         Únicamente me queda por hacer el backport de:
> >         >
> >         >           * gstreamer0.10-nice: tengo que buscar una
> >         dependencia que
> >         >         tiene, que
> >         >         no logro encontrar el paquete :-O
> >         >
> >         >           * gstreamer0.10-ffmpeg: Este va a tener jaleo,
> >         porque
> >         >         depende de
> >         >         todas las librerías de ffmpeg pero creo que se puede
> >         >         conseguir.
> >         >
> >         >
> >         >         un saludo!
> >         >
> >         >         [1]
> >         http://jde.gsyc.es/apt/dists/lenny/gstreamer/binary-i386/
> >         >
> >         >
> >         >         El mié, 14-10-2009 a las 12:41 +0200, Roberto Calvo
> >         escribió:
> >         >
> >         >
> >         >         > El mar, 13-10-2009 a las 18:20 +0200, David Lobato
> >         escribió:
> >         >         > > Ya tengo un debian lenny andando para empezar
> >         con pruebas.
> >         >         > > Roberto, sacaste los paquetes de gstreamer para
> >         lenny?? Si
> >         >         los tienes
> >         >         > > ponlos por algún lado para ponermelos.
> >         >         > >
> >         >         >
> >         >         > Los he conseguido compilar en lenny, pero
> >         justamente al
> >         >         final falla a la
> >         >         > hora de generar los paquetes debian.
> >         >         >
> >         >         > Dejame echarle un ojo más, a ver si veo algo.
> >         >         >
> >         >         > un saludete!
> >         >         >
> >         >         >
> >         >         > >
> >         >         > > Saludetes.
> >         >         > >
> >         >         > > 2009/10/6 Roberto Calvo <rocapal en gsyc.es>
> >         >         > >
> >         >         > >         Grachie David!
> >         >         > >
> >         >         > >         Hemos estado haciendo unas pruebas con
> >         David en la
> >         >         picoITX
> >         >         > >         (sobre SID),
> >         >         > >         recordad que es un procesador de 1Ghz.
> >         >         > >
> >         >         > >
> >         >         > >         Component                     Frames
> >         >         Resolution
> >         >         > >          Porcentaje CPU
> >         >         > >
> >         >
> >
> -----------------------------------------------------------------------
> >         >         > >         varcolorserver                 25fps
> >         320x240
> >         >         > >         20-25%
> >         >         > >         varcolorserver + envio         25fps
> >         320x240
> >         >         > >         28-32
> >         >         > >
> >         >         > >         varcolorserver                 25fps
> >         640x480
> >         >         >
> >         >         > >         95 %
> >         >         > >
> >         >         > >
> >         >         > >         Hemos visto que el problema parece estar
> >         en que
> >         >         gstreamer
> >         >         > >         siempre hace
> >         >         > >         una recodificación si lo que queremos
> >         obtener es
> >         >         RGB (cosa que
> >         >         > >         no
> >         >         > >         debería ya que video4linux2 no lo hace),
> >         >         > >
> >         >         > >         La buena noticia es que hemos visto que
> >         utilizando
> >         >         gstreamer y
> >         >         > >         obteniendo las imágenes en YUV (320x240
> >         y
> >         >         640x480), el
> >         >         > >         procesamiento de
> >         >         > >         la CPU ronda entre 3% y 6%
> >         >         > >
> >         >         > >         Los siguientes pasos serán ver si se
> >         puede
> >         >         optimizar el
> >         >         > >         pipeline de
> >         >         > >         gstreamer para obtener RGB con un bajo
> >         coste de
> >         >         CPU, y
> >         >         > >         estudiar la
> >         >         > >         posibilidad de trabajar siempre en YUV.
> >         >         > >
> >         >         > >         un saludete!
> >         >         > >
> >         >         > >         El mar, 06-10-2009 a las 13:05 +0200,
> >         David Lobato
> >         >         escribió:
> >         >         > >
> >         >         > >         > Roberto,
> >         >         > >         >
> >         >         > >         > Te adjunto el ejemplo del que
> >         hablabamos. Una
> >         >         vez compilado
> >         >         > >         genera dos
> >         >         > >         > ejecutables, varcolorserver y
> >         varcolorviewgtkmm.
> >         >         > >         > Ejecutalos pasando a cada uno su
> >         configuracion
> >         >         con
> >         >         > >         > --Ice.Config=<fichero>
> >         >         > >         > Usa los cfg con los mismos nombres que
> >         los
> >         >         ejecutables.
> >         >         > >         >
> >         >         > >         > Si tienes cualquier problema
> >         comentamelo.
> >         >         > >         >
> >         >         > >         > Saludetes.
> >         >         > >
> >         >         > >         >
> >         _______________________________________________
> >         >         > >         > 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
> >         >         > >         Tel: (+34) 91 488 81 05         | Edif.
> >         >         Departamental II -
> >         >         > >         Despacho 116
> >         >         > >         rocapal en gsyc.es                 |
> >         c/Tulipán s/n
> >         >         28933 Móstoles
> >         >         > >         (Madrid)
> >         >         > >         http://libresoft.es/
> >         >         > >
> >         >         > >         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
> >         >         Tel: (+34) 91 488 81 05         | Edif.
> >         Departamental II -
> >         >         Despacho 116
> >         >         rocapal en gsyc.es                 | c/Tulipán s/n
> >         28933 Móstoles
> >         >         (Madrid)
> >         >         http://libresoft.es/
> >         >
> >         >         GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
> >         >
> >         >
> >         >         --
> >         >         Roberto Calvo Palomino          | Libre Software
> >         Engineering
> >         >         Lab (GSyC)
> >         >         Tel: (+34) 91 488 85 23         | Universidad Rey
> >         Juan Carlos
> >         >         Tel: (+34) 91 488 81 05         | Edif.
> >         Departamental II -
> >         >         Despacho 116
> >         >         rocapal en gsyc.es                 | c/Tulipán s/n
> >         28933 Móstoles
> >         >         (Madrid)
> >         >         http://libresoft.es/
> >         >
> >         >         GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
> >         >
> >         >
> >         >
> >
> >
> >
> >         --
> >
> >         Roberto Calvo Palomino          | Libre Software Engineering
> >         Lab (GSyC)
> >         Tel: (+34) 91 488 85 23         | Universidad Rey Juan Carlos
> >         Tel: (+34) 91 488 81 05         | Edif. Departamental II -
> >         Despacho 116
> >         rocapal en gsyc.es                 | c/Tulipán s/n 28933 Móstoles
> >         (Madrid)
> >         http://libresoft.es/
> >
> >         GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
> >
> >
> >
>
>
> --
> Roberto Calvo Palomino          | Libre Software Engineering Lab (GSyC)
> Tel: (+34) 91 488 85 23         | Universidad Rey Juan Carlos
> Tel: (+34) 91 488 81 05         | Edif. Departamental II - Despacho 116
> rocapal en gsyc.es                 | c/Tulipán s/n 28933 Móstoles (Madrid)
> http://libresoft.es/
>
> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20091023/84ae9c24/attachment-0001.htm 


More information about the Jde-developers mailing list