GSVideo 0.4.5


La librería de video para Processing GSVideo publicó una nueva versión, la gsvideo 0.4.5.

Como novedad trae la implementación del método GSCapture.list(), para listar los dispositivos de captura conectados. Este método asume que el elemento de fuente es v4l2src, pero se le puede pasar el parámetro v4lsrc, GSCapture.list("v4lsrc"). Además incluye la posibilidad de definir pipelines con la clase GSPipeline que terminen en filesink, para hacer captura a disco, un paso más cerca de GSMovieMaker.

También incluye unas facilidades de sintaxis, ya no es necesario emplear un array para escoger el dispositivo de captura en el constructor del objeto GSCapture, por ejemplo:

de esto:
cam = new GSCapture(this, 320, 240, new String[] {"device"}, new String[] {"/dev/video1"},15);

se pasó a esto:
cam = new GSCapture(this, 320, 240, "/dev/video1",15);

Lo que ven en la imagen es un ejemplo de captura simple + el ejemplo ASCII video en Processing 1.0.1 + gsvideo 0.4.5 sobre un sistema Linux Mint Felicia (prácticamente un Ubuntu Intrepid), capturando de mi tarjeta de radio y tv Kworld Plus Lite PCI. Para lograrlo simplemente inicié Processing, luego tvtime en el canal que deseé, cerré tvtime y arranque el ejemplo de processing, y así toma la señal del dispositivo con el último canal sintonizado.

El método GSCapture.list() aún no me ha funcionado, pero seguiré probando y posteándo.

PD: probado en Mandriva Free x86_64 2009 y funciona perfectamente, aunque el método GSCapture.list() presenta el mismo error que en 32 bits.

2 comentarios:

andres dijo...

Sigo la discusión que comenzamos en el post anterior, ya que éste me parece mas adecuado para el tema en cuestión.

Yo creo que los errores que salen cuando intentas hacer el GSCapture.list(), tanto con v4l2src como con v4lsrc:

**
ERROR:gstv4l2src.c:161:gst_v4l2src_iface_supported: assertion failed: (iface_type == GST_TYPE_TUNER || iface_type == GST_TYPE_COLOR_BALANCE || iface_type == GST_TYPE_VIDEO_ORIENTATION)

**
ERROR:gstv4lelement.c:74:gst_v4l_iface_supported: assertion failed: (iface_type == GST_TYPE_TUNER || iface_type == GST_TYPE_X_OVERLAY || iface_type == GST_TYPE_COLOR_BALANCE)

quiere decir que v4lsrc y v4l2src no implementan el listado de los dispositivos de captura. Esto ocurre al nivel interno de estos plugins de gstreamer, asi que deafortunadamente no puedo resolverlo desde gsvideo.

Sergio Esteban dijo...

si, pues parece ser que el problema es con la versión de la librería libv4l (tengo la 0.4.3), ya que lo probé con una cam y solo funciona si el tamaño de la captura es 320 x 240 o inferior y siempre bota repetidamente el warning:
(GSVideo:2418): GStreamer-WARNING **: pad Source:src returned caps which are not a real subset of its template caps