Differenze tra le versioni di "Effettuare una ripresa video mediante una WebCam con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 4: | Riga 4: | ||
− | Mostriamo di seguito un esempio | + | Mostriamo di seguito un esempio essenziale con un'applicazione ''a riga di comando'': |
'''Public''' Sub Main() | '''Public''' Sub Main() | ||
Riga 29: | Riga 29: | ||
Wend | Wend | ||
+ | '''End''' | ||
+ | |||
+ | |||
+ | ====Mostrare nel video il tempo trascorso==== | ||
+ | Per mostrare nella finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin ''timeoverlay'' fornito da ''GStreamer'': | ||
+ | '''Public''' Sub Main() | ||
+ | |||
+ | Dim pl As MediaPipeline | ||
+ | Dim src, tim, snk As MediaControl | ||
+ | Dim ftr As MediaFilter | ||
+ | |||
+ | pl = New MediaPipeline | ||
+ | |||
+ | src = New MediaControl(pl, "v4l2src") | ||
+ | ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=30/1") | ||
+ | tim = New MediaControl(pl, "<FONT Color=#B22222>timeoverlay</font>") | ||
+ | snk = New MediaControl(pl, "xvimagesink") | ||
+ | |||
+ | <FONT Color=gray>' ''Colleghiamo fra loro i due plugin di "GStreamer":''</font> | ||
+ | src.LinkTo(ftr) | ||
+ | ftr.LinkTo(tim) | ||
+ | tim.LinkTo(snk) | ||
+ | |||
+ | <FONT Color=gray>' ''Avvia la ripresa video:''</font> | ||
+ | pl.State = Media.Playing | ||
+ | pl.Play() | ||
+ | |||
+ | While True | ||
+ | Sleep 0.01 | ||
+ | Wend | ||
+ | |||
'''End''' | '''End''' |
Versione delle 09:54, 6 ott 2016
Il Componente gb.media, utilizzando particolari plugin di GStreamer, consente di effettuare una ripresa video mediante una WebCam.
Il codice prevede l'utilizzo della Classe MediaPipeline che fornisce il supporto di collegamento dei vari plugin di GStreamer per consentire la ripresa video.
Mostriamo di seguito un esempio essenziale con un'applicazione a riga di comando:
Public Sub Main() Dim pl As MediaPipeline Dim src, snk As MediaControl Dim ftr As MediaFilter pl = New MediaPipeline src = New MediaControl(pl, "v4l2src") ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=30/1") snk = New MediaControl(pl, "xvimagesink") ' Colleghiamo fra loro i due plugin di "GStreamer": src.LinkTo(ftr) ftr.LinkTo(snk) ' Avvia la ripresa video: pl.State = Media.Playing pl.Play() While True Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000) Wend End
Mostrare nel video il tempo trascorso
Per mostrare nella finestra del video anche il tempo trascorso dall'inizio della ripresa video, è necessario utilizzare il plugin timeoverlay fornito da GStreamer: Public Sub Main()
Dim pl As MediaPipeline Dim src, tim, snk As MediaControl Dim ftr As MediaFilter pl = New MediaPipeline src = New MediaControl(pl, "v4l2src") ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480,framerate=30/1") tim = New MediaControl(pl, "timeoverlay") snk = New MediaControl(pl, "xvimagesink") ' Colleghiamo fra loro i due plugin di "GStreamer": src.LinkTo(ftr) ftr.LinkTo(tim) tim.LinkTo(snk) ' Avvia la ripresa video: pl.State = Media.Playing pl.Play() While True Sleep 0.01 Wend End