[Jde-dev] ejemplo ice+gstreamer

David Lobato dav.lobato en gmail.com
Jue Nov 5 19:53:43 CET 2009


He subido al branch 5.0 el ejemplo modificado sin la clase application en el
cliente. Mira a ver si te haces con ello.

Probaste a modificar los parámetros de la cámara?

Un saludete.
David.

2009/10/23 David Lobato <dav.lobato en gmail.com>

>
>
> 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/20091105/7d938132/attachment-0001.htm 


More information about the Jde-developers mailing list