Differenze tra le versioni di "Salvare in un file MKV una ripresa video mediante una WebCam con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
Vediamo un esempio di ripresa video - ''priva di audio'' - con un'applicazione ''a riga di comando'': | Vediamo un esempio di ripresa video - ''priva di audio'' - con un'applicazione ''a riga di comando'': | ||
+ | Private bo As Boolean | ||
+ | |||
+ | |||
Public Sub Main() | Public Sub Main() | ||
Riga 8: | Riga 11: | ||
Dim ftr As MediaFilter | Dim ftr As MediaFilter | ||
Dim tm As Date | Dim tm As Date | ||
− | Dim | + | Dim i As Integer |
− | |||
− | |||
− | |||
− | |||
pl = New MediaPipeline | pl = New MediaPipeline | ||
src = New MediaControl(pl, "v4l2src") | src = New MediaControl(pl, "v4l2src") | ||
− | src["device"] = "/dev/ | + | src["device"] = "/dev/video<FONT Color=red>0</font>" |
− | |||
ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480") | ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480") | ||
cnv = New MediaControl(pl, "videoconvert") | cnv = New MediaControl(pl, "videoconvert") | ||
Riga 42: | Riga 40: | ||
<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 "\rTempo: " & CStr(Time(0, 0, 0, i)) | Write "\rTempo: " & CStr(Time(0, 0, 0, i)) | ||
− | Until | + | Until bo |
− | + | ||
pl.Stop() | pl.Stop() | ||
pl.Close() | pl.Close() | ||
Print "\nRegistrazione terminata !" | Print "\nRegistrazione terminata !" | ||
− | + | <FONT Color=gray>' ''Essendo stato utilizzato l'Evento "Application_Read()", è necessario usare l'istruzione "Quit" per terminare il programma e così per poter creare il file video:''</font> | |
+ | Quit | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Application_Read() <FONT Color=gray>' ''Premendo il tasto "Invio" della tastiera si arresta la ripresa video e si chiude il programma''</font> | ||
+ | |||
+ | bo = True | ||
+ | |||
End | End |
Versione delle 03:38, 3 lug 2024
Il Componente gb.media, utilizzando particolari plugin di GStreamer, consente di salvare una ripresa video mediante una WebCam in un file di formato MKV - Matroska.
Vediamo un esempio di ripresa video - priva di audio - con un'applicazione a riga di comando:
Private bo As Boolean Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, enc, mux, snk As MediaControl Dim ftr As MediaFilter Dim tm As Date Dim i As Integer pl = New MediaPipeline src = New MediaControl(pl, "v4l2src") src["device"] = "/dev/video0" ftr = New MediaFilter(pl, "video/x-raw,width=640,height=480") cnv = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "x264enc") mux = New MediaControl(pl, "matroskamux") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/video.mkv" ' Colleghiamo fra loro i plugin di "GStreamer": src.LinkTo(ftr) ftr.LinkTo(cnv) cnv.LinkTo(enc) enc.LinkTo(mux) mux.LinkTo(snk) ' Avvia la ripresa video: pl.Play() tm = Now Repeat i = DateDiff(tm, Now, gb.Millisecond) ' Il tempo trascorso dall'inizio della ripresa video viene mostrato in console/Terminale: Write "\rTempo: " & CStr(Time(0, 0, 0, i)) Until bo pl.Stop() pl.Close() Print "\nRegistrazione terminata !" ' Essendo stato utilizzato l'Evento "Application_Read()", è necessario usare l'istruzione "Quit" per terminare il programma e così per poter creare il file video: Quit End Public Sub Application_Read() ' Premendo il tasto "Invio" della tastiera si arresta la ripresa video e si chiude il programma bo = True End