Salvare in un file OGV una ripresa video mediante una WebCam con il Componente gb.media

Da Gambas-it.org - Wikipedia.

Il Componente gb.media, utilizzando particolari plugin di GStreamer, consente di salvare una ripresa video mediante una WebCam in un file di formato OGV.

Vediamo un esempio - privo di audio - con un'applicazione a riga di comando:

Private bo As Boolean


Public Sub Main()
  
 Dim pl As MediaPipeline
 Dim src, the, ogg, snk As MediaControl
 Dim ftr As MediaFilter
 Dim primofile As String
  
  bo = True
  primofile = "/tmp/primofile.ogv"
  
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "v4l2src")
  ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=1/1")
  the = New MediaControl(pl, "theoraenc")
  ogg = New MediaControl(pl, "oggmux")
  ogg["name"] = "mux"
  snk = New MediaControl(pl, "filesink")
  snk["location"] = primofile
 
' Colleghiamo fra loro i plugin di "GStreamer":
  src.LinkTo(ftr)
  ftr.LinkTo(the)
  the.LinkTo(ogg)
  ogg.LinkTo(snk)
  
' Avvia la ripresa video:
  pl.Play()
  
  While bo
' Il tempo trascorso dall'inizio della ripresa video viene mostrato in console/Terminale:
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
    Wait 0.001
  Wend
  
  Copy primofile To "/tmp/file.ogv"
  pl.Stop()
  pl.Close
  
  Print "\nTermine registrazione"
  Quit
     
End


Public Sub Application_Read()
 
 Dim s As String
  
  Input s
  
  bo = False
  
End

Per mostrare eventualmente all'interno della finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin "timeoverlay"