Differenze tra le versioni di "Salvare in un file MP4 una ripresa video mediante una WebCam con il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 8: | Riga 8: | ||
Dim tm As Date | Dim tm As Date | ||
Dim dur, eff, i As Integer | Dim dur, eff, i As Integer | ||
− | + | ||
− | |||
− | |||
− | |||
<FONT Color=gray>' ''Imposta il numero di fotogrammi di cui sarà composto il video, tenendo presente che la durata del video in secondi sarà uguale a circa un terzo del valore assegnato alla variabile "dur":''</font> | <FONT Color=gray>' ''Imposta il numero di fotogrammi di cui sarà composto il video, tenendo presente che la durata del video in secondi sarà uguale a circa un terzo del valore assegnato alla variabile "dur":''</font> | ||
dur = 20 | dur = 20 | ||
Riga 25: | Riga 22: | ||
mux = New MediaControl(pl, "mp4mux") | mux = New MediaControl(pl, "mp4mux") | ||
snk = New MediaControl(pl, "filesink") | snk = New MediaControl(pl, "filesink") | ||
− | snk["location"] = | + | snk["location"] = "/tmp/video.mp4" |
<FONT Color=gray>' ''Collega fra loro i plugin di "GStreamer":''</font> | <FONT Color=gray>' ''Collega fra loro i plugin di "GStreamer":''</font> | ||
Riga 48: | Riga 45: | ||
pl.Stop() | pl.Stop() | ||
pl.Close() | pl.Close() | ||
− | |||
Print "\nRegistrazione terminata !" | Print "\nRegistrazione terminata !" | ||
End | End |
Versione delle 16:57, 2 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 MP4.
Vediamo un esempio di ripresa video - priva di audio - con un'applicazione a riga di comando:
Public Sub Main() Dim pl As MediaPipeline Dim src, cnv, enc, mux, snk As MediaControl Dim tm As Date Dim dur, eff, i As Integer ' Imposta il numero di fotogrammi di cui sarà composto il video, tenendo presente che la durata del video in secondi sarà uguale a circa un terzo del valore assegnato alla variabile "dur": dur = 20 eff = (dur * 1000) / 2 pl = New MediaPipeline src = New MediaControl(pl, "v4l2src") src["device"] = "/dev/video0" src["num-buffers"] = dur cnv = New MediaControl(pl, "videoconvert") enc = New MediaControl(pl, "x264enc") mux = New MediaControl(pl, "mp4mux") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/video.mp4" ' Collega fra loro i plugin di "GStreamer": src.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: " & Str(Time(0, 0, 0, i)) Flush Wait 0.1 Until i >= eff pl.Stop() pl.Close() Print "\nRegistrazione terminata !" End