Salvare in un file OGV una ripresa video mediante una WebCam con il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 8 ott 2016 alle 09:46 di Vuott (Discussione | contributi) (Creata pagina con "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...")
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:
Public Sub Main() Dim pl As MediaPipeline Dim src, the, ogg, 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") the = New MediaControl(pl, "theoraenc") ogg = New MediaControl(pl, "oggmux") ogg["name"] = "mux" snk = New MediaControl(pl, "filesink") snk["location"] = "/percorso/del/file.ogv" ' 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 True ' 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) Wend End
Mostrare nel video anche il tempo trascorso
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 src = New MediaControl(pl, "v4l2src") 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"] = "/percorso/del/file.ogv" ' Colleghiamo fra loro i plugin di "GStreamer": src.LinkTo(ftr) ftr.LinkTo(tim) tim.LinkTo(the) the.LinkTo(ogg) ogg.LinkTo(snk) ' Avvia la ripresa video: pl.Play() While True ' Mostra anche in console/Terminale il tempo trascorso dall'inizio della ripresa video: Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000) Wend End