Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 2
Ir a la página 1, 2  Siguiente
 
Problema: Obtener Image De Webcam Con MediaPlayer
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Problema: Obtener Image De Webcam Con MediaPlayer 
 
Qué tal,

Estoy usando gambas 3.8.4 en Ubuntu 16.04.

Mi intensión es procesar una imagen capturada por una webcam. Hasta ahora (gracias al ejemplo MediaPlayer 1.0.0) puedo ver video en un drawing area usando el componente gb.media con su clase MediaPlayer.

' gambas class file

Private $hPlayer As MediaPlayer
Private $hImage As MediaControl

Public Sub _new()
  
  $hPlayer = New MediaPlayer As "MediaPlayer"
  $hImage = New MediaControl($hPlayer, "ximagesink")  
  $hPlayer.Video.Output = $hImage

  $hPlayer.URL = "v4l2:///dev/video0"
  $hImage.SetWindow(DrawingArea1)
  Sleep 0.1
  Try $hPlayer.Play
  If Not Error Then
      Print "Ok"
    Else
      Print "Error"
      Try $hPlayer.Stop
     Endif

End
 


Pero en otro evento (un Timer) quiero, por ahora, mostrar en otro Drawing Area una captura, he probado lo siguiente:

Public Sub Timer1_Timer()

  DrawingArea2.Refresh()

End

Public Sub DrawingArea2_Draw()

  Dim img As Image
  img = $hPlayer.Video.Image
  img.Format = "BGRA"
  Paint.DrawImage(img, 0, 0, DrawingArea1.W, DrawingArea1.H, 1, Rect(0, 0, img.W, img.H))

End
 


Pero falla el $hPlayer.Video.Image dándome el mensaje "Unsupported default image format". He probado también a tomar una captura de la webcam con el ejemplo MediaPlayer pero me tira el mismo mensaje.

Alguna idea de qué es lo que pasa? Cómo solventarlo?

De antemano, gracias. Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
Buscando en internet, lo único que obtengo es el código fuente de la clase ( c_media.c ). Me llama la atención lo siguiente:

  484 GB_IMG *MEDIA_get_image_from_sample(GstSample *sample, bool convert)
  485 {
  486     GstSample *temp;
  487     GError *err = NULL;
  488     GstStructure *s;
  489     GstCaps *to_caps, *sample_caps;
  490     gint outwidth = 0;
  491     gint outheight = 0;
  492     GstMemory *memory;
  493     GstMapInfo info;
  494     const char *format;
  495     int gb_format;
  496     GB_IMG *img;
  497
  498     switch (IMAGE.GetDefaultFormat())
  499     {
  500         case GB_IMAGE_BGRA:
  501             format = "BGR";
  502             gb_format = GB_IMAGE_BGR;
  503             break;
  504
  505         case GB_IMAGE_RGBA:
  506             format = "RGB";
  507             gb_format = GB_IMAGE_RGB;
  508             break;
  509
  510         default:
  511             GB.Error("Unsupported default image format");
  512             return NULL;
  513     }
 


Pero no sé si se puede cambiar el formato de la webcam o tal vez se tendrían que agregar más formatos (el que use la webcam) a dicho método.
 



 
última edición por razaAztk el Lunes, 27 Junio 2016, 01:08; editado 1 vez 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
Ni idea, oiga, pero el tema me interesa. Si lo solucionas de alguna manera no dejes de comunicarlo.

Saludos.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
img.Format
"Return" el formato de una imagen, no "Set" .    



Haría falta cambiar el formato de la imagen capturada.    
 



 
última edición por vuott el Lunes, 27 Junio 2016, 10:31; editado 5 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
No se si te puedes ayudar esto:

https://foro.gambas-es.org/show_post.php?p=29565

(https://foro.gambas-es.org/viewtopic.php?f=5&t=5087)
 



 
última edición por vuott el Lunes, 27 Junio 2016, 10:52; editado 3 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
Qué tal,

He realizado lo siguiente:

Me descargué las fuentes de gambas3, y realicé la siguiente búsqueda:

$ grep -lir "Unsupported default image format" ./

./gb.media/src/c_mediaplayer.c
./gb.media/src/c_media.c

 


Haciendo pruebas, vi que la webcam que estoy usando me daba el formato GB_IMAGE_BGRP (no sé si todas las webcams dan ese formato). Y entonces modifiqué esos dos ficheros:

c_mediaplayer.c: línea 161
        switch (IMAGE.GetDefaultFormat())
        {
                case GB_IMAGE_BGRA:
                        format = "BGR";
                        break;

                case GB_IMAGE_RGBA:
                        format = "RGB";
                        break;
                
                case GB_IMAGE_BGRP: // Agregado formato para webcam
                        format = "BGR";
                        break;

                default:
                        GB.Error("Unsupported default image format");
                        return NULL;
        }
 


c_media.c: línea 498
        switch (IMAGE.GetDefaultFormat())
        {
                case GB_IMAGE_BGRA:
                        format = "BGR";
                        gb_format = GB_IMAGE_BGR;
                        break;

                case GB_IMAGE_RGBA:
                        format = "RGB";
                        gb_format = GB_IMAGE_RGB;
                        break;
                        
                case GB_IMAGE_BGRP: // Agregado formato para webcam
                        format = "BGR";
                        gb_format = GB_IMAGE_BGR;
                        break;

                default:
                        GB.Error("Unsupported default image format");
                        return NULL;
        }
 


Compilé e instalé sólo esa librería:

$ cd gb.media
$ reconf
$ ./configure -C
$ make
$ sudo make install
 


Nota: Son necesarios gstreamer-1.0 gstreamer-video-1.0

Probé el ejemplo que realicé al principio de éste hilo y funcionó correctamente.

Podría alguien, que esté inscrito a la lista de gambas, comentarle a Benoît Minisini si pudiera revisar el componente gb.media para poder capturar imágenes de una webcam (agregando los formatos faltantes).

Con ésto, al menos, puedo seguir avanzando... me falta ver como cambio la resolución de la webcam.

Saludos.
 



 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
razaAztk escribió: [Ver mensaje]
Me descargué las fuentes de gambas3
vi que la webcam que estoy usando me daba el formato GB_IMAGE_BGRP
modifiqué esos dos ficheros:
Compilé e instalé sólo esa librería:
Probé el ejemplo que realicé al principio de éste hilo y funcionó correctamente.


Bravissimo !
Muy interesante !
Trabajo admirable.
Muy bueno, razaAztk !
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
el razateca ta salao jajajaajja  

saludos, los observo eee jajjajajaj      
 




===================
Software libre, programación libre, vida libre es la Public function Libertad()as Invendible
Proyectos: VisorRV1960,Taller2015,Tanteador
https://sourceforge.net/u/v3ctor-full/profile/
Blog: http://novatocodegambas.blogspot.com.uy/
 
v3ctor - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
Qué tal,

He estado testeando la webcam con gb.media pero la verdad que no me agrada dicho componente. La verdad me agradaba el anterior que usaba v4l2.

Con gb.media en vez de tomar una Image directo de la webcam, la toma del MediaPlayer. Entonces la resolución cambia en función al tamaño que tenga en ese momento el MediaPlayer; y tampoco he podido especificar la resolución y framerate de la webcam. Ni he visto cómo sobreponer rectángulos al stream.

No sé si no he podido entender bien cómo funciona gb.media o si no está muy orientado a hacer procesamientos con una webcam.

Estoy tentado a seguir realizando mi proyecto con gb.v4l aunque ya esté deprecated.

EDITO:

Por cierto, muchas gracias por sus comentarios shordi, vuott, v3ctor y los demás que vayan opinando.
 



 
última edición por razaAztk el Domingo, 14 Agosto 2016, 19:25; editado 1 vez 
razaAztk - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuarioVer la galería personal del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Problema: Obtener Image De Webcam Con MediaPlayer 
 
razaAztk escribió: [Ver mensaje]
muchas gracias por sus comentarios .....

El tu trabajo es un interesante ejemplo de modificación de un codigo fuente gambas y installación del codigo modificado !



razaAztk escribió: [Ver mensaje]
Estoy tentado a seguir realizando mi proyecto con gb.v4l aunque ya esté deprecated.

No llego a comprender como tú puedes utilizar el Componente gb.v4l, si ahora no hay más este Componente en la lista.   scratch
 



 
última edición por vuott el Domingo, 14 Agosto 2016, 20:41; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Webcam Problema zaratustraw00f General 3 Viernes, 05 Febrero 2010, 23:39 Ver último mensaje
CanihoJR
No hay nuevos mensajes Problemas Con MediaPlayer Invitado General 3 Jueves, 31 Octobre 2013, 12:30 Ver último mensaje
jsbsan
No hay nuevos mensajes Problema Para Obtener El índice De Los It... kitoko Controles/Librerías/Componentes 3 Lunes, 31 Marzo 2014, 18:57 Ver último mensaje
kitoko
No hay nuevos mensajes ¿ Picture O Image ? Shell General 2 Sabado, 23 Septiembre 2017, 21:36 Ver último mensaje
Shell
 

Publicar nuevo tema  Responder al tema  Página 1 de 2
Ir a la página 1, 2  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron