Differenze tra le versioni di "Salvare in un file OGV una ripresa video mediante una WebCam con il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 1: Riga 1:
 
Il Componente ''gb.media'', utilizzando particolari plugin di ''GStreamer'', consente di salvare una ripresa video mediante una WebCam in un file di formato OGV.
 
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'':
 
Vediamo un esempio - ''privo di audio'' - con un'applicazione ''a riga di comando'':
 +
Private bo As Boolean
 +
 +
 
  '''Public''' Sub Main()
 
  '''Public''' Sub Main()
 
    
 
    
Riga 8: Riga 10:
 
   Dim src, the, ogg, snk As MediaControl
 
   Dim src, the, ogg, snk As MediaControl
 
   Dim ftr As MediaFilter
 
   Dim ftr As MediaFilter
    
+
   Dim primofile As String
 +
 
 +
  bo = True
 +
  primofile = "/tmp/primofile.ogv"
 +
 
 
   pl = New MediaPipeline  
 
   pl = New MediaPipeline  
   
+
 
 
   src = New MediaControl(pl, "v4l2src")
 
   src = New MediaControl(pl, "v4l2src")
   ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=30/1")
+
   ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=1/1")
 
   the = New MediaControl(pl, "theoraenc")
 
   the = New MediaControl(pl, "theoraenc")
 
   ogg = New MediaControl(pl, "oggmux")
 
   ogg = New MediaControl(pl, "oggmux")
 
   ogg["name"] = "mux"
 
   ogg["name"] = "mux"
 
   snk = New MediaControl(pl, "filesink")
 
   snk = New MediaControl(pl, "filesink")
   snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogv''</font>"
+
   snk["location"] = primofile
 
    
 
    
 
  <FONT Color=gray>' ''Colleghiamo fra loro i plugin di "GStreamer":''</font>
 
  <FONT Color=gray>' ''Colleghiamo fra loro i plugin di "GStreamer":''</font>
Riga 28: Riga 34:
 
   pl.Play()
 
   pl.Play()
 
    
 
    
   While True
+
   While bo
 
  <FONT Color=gray>' ''Il tempo trascorso dall'inizio della ripresa video viene mostrato in console/Terminale:''</font>
 
  <FONT Color=gray>' ''Il tempo trascorso dall'inizio della ripresa video viene mostrato in console/Terminale:''</font>
 
     Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
 
     Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
 +
    Wait 0.001
 
   Wend
 
   Wend
 +
 
 +
  Copy primofile To "/tmp/file.ogv"
 +
  pl.Stop()
 +
  pl.Close
 +
 
 +
  Print "\nTermine registrazione"
 +
  Quit
 
        
 
        
 
  '''End'''
 
  '''End'''
 
+
 
+
====Mostrare nel video anche il tempo trascorso====
+
  '''Public''' Sub Application_Read()
Per mostrare nella finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin ''timeoverlay'':
 
  '''Public''' Sub Main()
 
   
 
  Dim pl As MediaPipeline
 
  Dim src, tim, the, ogg, snk As MediaControl
 
  Dim ftr As MediaFilter
 
 
    
 
    
  pl = New MediaPipeline
+
   Dim s As String
   
+
    
  src = New MediaControl(pl, "v4l2src")
+
   Input s
  ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=30/1")
 
  tim = New MediaControl(pl, "timeoverlay")
 
  the = New MediaControl(pl, "theoraenc")
 
  ogg = New MediaControl(pl, "oggmux")
 
  ogg["name"] = "mux"
 
  snk = New MediaControl(pl, "filesink")
 
  snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogv''</font>"
 
    
 
<FONT Color=gray>' ''Colleghiamo fra loro i plugin di "GStreamer":''</font>
 
  src.LinkTo(ftr)
 
  ftr.LinkTo(tim)
 
  tim.LinkTo(the)
 
   the.LinkTo(ogg)
 
   ogg.LinkTo(snk)
 
 
    
 
    
<FONT Color=gray>' ''Avvia la ripresa video:''</font>
+
  bo = False
  pl.Play()
 
 
    
 
    
  While True
 
<FONT Color=gray>' ''Mostra anche in console/Terminale il tempo trascorso dall'inizio della ripresa video:''</font>
 
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
 
  Wend
 
     
 
 
  '''End'''
 
  '''End'''
 +
 +
Per mostrare eventualmente nella finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin ''timeoverlay'':

Versione delle 19:36, 9 ago 2017

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 nella finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin timeoverlay: