Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Ejecutar Archivos Vídeo Con Las Funciones Externas Del API De Libgstreamer
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ejecutar Archivos Vídeo Con Las Funciones Externas Del API De Libgstreamer 
 
Bueno amigosss,
ahora la bestiaza negra de las librerias audio/video: GStreamer.

Un exemplo simple, simple para veer un archivo video (se necesita poner una DrawingArea y dos Button):
Private Const GST_STATE_NULL As Integer = 1
Private Const GST_STATE_PLAYING As Integer = 4

Private play As Pointer

Library "libgstreamer-1.0"

' gst_init (&argc, &argv)
Private Extern gst_init(argc As Integer, argv As Pointer)

' GstElement * gst_element_factory_make(const gchar *factoryname, Const gchar * name)
Private Extern gst_element_factory_make(factoryname As String, name As String) As Pointer

' void g_object_set(gpointer object, const gchar *first_property_name, ...)
Private Extern g_object_set(gobject As Pointer, key As String, value As String, nl As String)

' void gst_video_overlay_set_window_handle(GstVideoOverlay *overlay, guintptr handle)
Private Extern gst_video_overlay_set_window_handle(overlay As Pointer, id As Integer) In "libgstvideo-1.0"

' GstStateChangeReturn gst_element_set_state(GstElement *element, GstState state)
Private Extern gst_element_set_state(gstobject As Pointer, state As Integer) As Integer

' void gst_object_unref(gpointer object)
Private Extern gst_object_unref(gobject As Pointer)


Public Sub Form_Open()

End

Public Sub Button1_Click()

 Dim retI As Integer

  gst_init(0, 0)

  play = gst_element_factory_make("playbin", "play")

  g_object_set(play, "uri", "file:///mi/archivo/video", Null)  ' Atención! La dirección empieza con File:///.....
  
  gst_video_overlay_set_window_handle(play, DrawingArea1.Handle)

' Iniciamos la reproducción audio/video:
  retI = gst_element_set_state(play, GST_STATE_PLAYING)
  Print "Estado de cambio = "; retI; " Ejecutando"

End


Public Sub Button2_Click()

 Dim retI As Integer

' Bloqueamos la reproducción audio/video:
  retI = gst_element_set_state(play, GST_STATE_NULL)
  Print "Estado de cambio = "; retI; " STOP"
  
  gst_object_unref(play)

End


Referencias (en italiano):
http://www.gambas-it.org/wiki/index..._dei_dati_media
http://www.gambas-it.org/wiki/index...PI_di_GStreamer
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Vídeo Con Las Funciones Externas Del API De Libgstreamer 
 
Para los que no estamos en el tema de librerías ¿qué diferencia hay? ¿hay alguna que vaya por defecto con distribuciones debian (ubuntu, mint, etc)? ¿Cual aconsejas? Es que es un mundo inexpolorado para mí.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Vídeo Con Las Funciones Externas Del API De Libgstreamer 
 
Hola vuott! Consulta, además del componente "gb.media", hay que agregar algo más? Porque sigo todo al pie de la letra pero me da un error:

"No es posible encontrar la librería dinámica 'libgstreamer-1.0.so': 'libgstreamer-1.0.so': no se puede abrir el archivo del objeto compartido: no existe el archivo o el directorio en FMain:37"

Alguna idea?

Gracias por la ayuda!!!  
 



 
fmuntuny - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ejecutar Archivos Vídeo Con Las Funciones Externas Del API De Libgstreamer 
 
fmuntuny escribió: [Ver mensaje]
Porque sigo todo al pie de la letra pero me da un error:

"No es posible encontrar la librería dinámica 'libgstreamer-1.0.so': 'libgstreamer-1.0.so': no se puede abrir el archivo del objeto compartido: no existe el archivo o el directorio en FMain:37"


Parece que tu no tienes la libreria libgstreamer-1.0.so. Es probable que tu tienes la version: libgstreamer-0.10.so.
Instala la nueva version, o cambia la línea "Library libgstreamer-1.0" en:
"Library libgstreamer-0.10"

Intenta.
 



 
última edición por vuott el Lunes, 24 Febrero 2014, 16:25; editado 2 veces 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

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