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 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 7: | Riga 10: | ||
Dim src, cnv, enc, mux, snk As MediaControl | Dim src, cnv, enc, mux, snk As MediaControl | ||
Dim tm As Date | Dim tm As Date | ||
− | Dim | + | Dim i As Integer |
− | |||
− | |||
− | |||
− | |||
pl = New MediaPipeline | pl = New MediaPipeline | ||
Riga 41: | Riga 40: | ||
Flush | Flush | ||
Wait 0.1 | Wait 0.1 | ||
− | 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() | ||
+ | |||
+ | bo = True | ||
End | End |
Versione delle 03:32, 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 MP4.
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 tm As Date Dim i As Integer 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 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() bo = True End