Differenze tra le versioni di "Ottenere la forma d'onda di un file audio mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
 
(7 versioni intermedie di uno stesso utente non sono mostrate)
Riga 8: Riga 8:
  
  
Mostriamo di seguito un esempio pratico per ottenere in un file immagine .jpg la forma d'onda di alcuni formati di file audio:
+
Mostriamo di seguito un esempio pratico per ottenere in un file immagine .jpg la forma d'onda di alcuni formati di file audio.
 
+
===Ottenere la forma d'onda di un file WAV===
====Ottenere la forma d'onda di un file WAV====
+
Private Const SECONDI As Integer = 5  <FONT Color=gray>' ''Imposta in secondi la durata dell'onda da disegnare (cominciando dall'inizio dell'audio)''</font>
  Library "libc:6"
 
 
   
 
   
<FONT Color=gray>' ''void exit (int __status)''
 
' ''Terminate program execution with STATUS.''</font>
 
Private Extern exit_C(i As Integer) As Integer Exec "exit"
 
 
   
 
   
 +
Public Sub Main()
 
   
 
   
'''Public''' Sub Main()
 
 
 
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
   Dim src, dcd, cnv, scp, vid, jpg, snk As MediaControl
+
   Dim src, dcd, cnv, scp, jpg, snk As MediaControl
 +
  Dim flt as MediaFilter
 +
 +
  pl = New MediaPipeline
 +
 +
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.wav''</font>"  <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
 
    
 
    
  pl = New MediaPipeline
+
   dcd = New MediaControl(pl, "<FONT Color=#B22222>wavparse</font>")
 
+
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
  src = New MediaControl(pl, "filesrc")
+
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
  src["location"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>"   <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
+
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
 
+
  flt = New MediaFilter(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1" &/ CStr(SECONDI)</font>)
  dcd = New MediaControl(pl, "<FONT Color=#B22222>wavparse</font>")
+
  jpg = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>")
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
+
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
+
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
+
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
  vid = New MediaControl(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1/</font><FONT Color=gray>''durata_del_file_audio_in_secondi''</font>")
+
  jpg = New MediaFilter(pl, "<FONT Color=#B22222>jpegenc</font>")
+
  <FONT Color=gray>' ''Collega fra loro all'interno della pipeline gli oggetti ''MediaControl'' impostati:''</font>
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
+
  src.LinkTo(dcd)
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
+
  dcd.LinkTo(cnv)
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
+
  cnv.LinkTo(scp)
 
+
  scp.LinkTo(flt)
  <FONT Color=gray>' ''Colleghiamo fra loro all'interno della pipeline gli oggetti ''MediaControl'' impostati:''</font>
+
  flt.LinkTo(jpg)
  src.LinkTo(dcd)
+
  jpg.LinkTo(snk)
  dcd.LinkTo(cnv)
 
  cnv.LinkTo(scp)
 
  scp.LinkTo(vid)
 
  vid.LinkTo(jpg)
 
  jpg.LinkTo(snk)
 
 
      
 
      
    pl.State = Media.Playing
+
  pl.Play()
    pl.Play()
 
    Sleep 5
 
 
      
 
      
    exit_C(0)
+
  Wait SECONDI
 
+
  '''End'''
+
  pl.Stop()
 +
  pl.Close()
 +
 +
  Print "\n\e[0mOperazione terminata !"
 +
 +
End
 +
 
 +
 
 +
===Ottenere la forma d'onda di un file MP3===
 +
Private Const SECONDI As Integer = 5
 +
 +
 +
Public Sub Main()
 +
 +
  Dim pl As MediaPipeline
 +
  Dim src, par, dcd, cnv, scp, jpg, snk As MediaControl
 +
  Dim flt as MediaFilter
 +
 +
  pl = New MediaPipeline
 +
 +
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.mp3''</font>"  <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
 +
   
 +
  par = New MediaControl(pl, "<FONT Color=#B22222>mpegaudioparse</font>")
 +
  dcd = New MediaControl(pl, "<FONT Color=#B22222>mpg123audiodec</font>")
 +
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
 +
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
 +
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
 +
  flt = New MediaFilter(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1" &/ CStr(SECONDI)</font>)
 +
  jpg = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>")
 +
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
 +
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 +
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
 +
 +
  src.LinkTo(par)
 +
  par.LinkTo(dcd)
 +
  dcd.LinkTo(cnv)
 +
  cnv.LinkTo(scp)
 +
  scp.LinkTo(flt)
 +
  flt.LinkTo(jpg)
 +
  jpg.LinkTo(snk)
 +
 +
  pl.Play()
 +
 +
  Wait SECONDI
 +
 +
  pl.Stop()
 +
  pl.Close()
 +
 +
  Print "\n\e[0mOperazione terminata !"
 +
 +
End
  
  
====Ottenere la forma d'onda di un file MP3====
+
===Ottenere la forma d'onda di un file OGG===
  Library "libc:6"
+
Per decodificare un file OGG, ci serviremo del plugin "decodebin".
 +
Private Const SECONDI As Integer = 5
 
   
 
   
<FONT Color=gray>' ''void exit (int __status)''
 
' ''Terminate program execution with STATUS.''</font>
 
Private Extern exit_C(i As Integer) As Integer Exec "exit"
 
 
   
 
   
 +
Public Sub Main()
 
   
 
   
'''Public''' Sub Main()
 
 
 
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
   Dim src, dcd, cnv, scp, vid, jpg, snk As MediaControl
+
   Dim src, dcb, cnv, scp, jpg, snk As MediaControl
 +
  Dim flt as MediaFilter
 +
 +
  pl = New MediaPipeline
 
    
 
    
  pl = New MediaPipeline
+
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.ogg''</font>"
 +
 +
  dcb = New MediaControl(pl, "<FONT Color=#B22222>decodebin</font>")
 +
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
 +
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
 +
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
 +
  flt = New MediaFilter(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1" &/ CStr(SECONDI)</font>)
 +
  jpg = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>")
 +
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
 +
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 +
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
 +
 +
  src.LinkTo(dcb)
 +
  dcb.LinkLaterTo(cnv)
 +
  cnv.LinkTo(scp)
 +
  scp.LinkTo(flt)
 +
  flt.LinkTo(jpg)
 +
  jpg.LinkTo(snk)
 
    
 
    
  src = New MediaControl(pl, "filesrc")
+
  pl.Play()
  src["location"] = "<FONT Color=gray>''/percorso/del/file.wav''</font>"   <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
+
    
 
+
  Wait SECONDI
  dcd = New MediaControl(pl, "<FONT Color=#B22222>mad</font>")
+
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
+
  pl.Stop()
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
+
  pl.Close()
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
+
  vid = New MediaControl(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1/</font><FONT Color=gray>''durata_del_file_audio_in_secondi''</font>")
+
  Print "\n\e[0mOperazione terminata !"
  jpg = New MediaFilter(pl, "<FONT Color=#B22222>jpegenc</font>")
+
   
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
+
  End
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
 
 
 
  <FONT Color=gray>' ''Colleghiamo fra loro all'interno della pipeline gli oggetti ''MediaControl'' impostati:''</font>
 
  src.LinkTo(dcd)
 
  dcd.LinkTo(cnv)
 
  cnv.LinkTo(scp)
 
  scp.LinkTo(vid)
 
  vid.LinkTo(jpg)
 
  jpg.LinkTo(snk)
 
   
 
    pl.State = Media.Playing
 
    pl.Play()
 
    Sleep 5
 
   
 
    exit_C(0)
 
 
 
  '''End'''
 
  
  
====Ottenere la forma d'onda di un file FLAC====
+
===Ottenere la forma d'onda di un file FLAC===
  Library "libc:6"
+
Private Const SECONDI As Integer = 5
 
   
 
   
<FONT Color=gray>' ''void exit (int __status)''
 
' ''Terminate program execution with STATUS.''</font>
 
Private Extern exit_C(i As Integer) As Integer Exec "exit"
 
 
   
 
   
 +
Public Sub Main()
 
   
 
   
'''Public''' Sub Main()
 
 
 
 
   Dim pl As MediaPipeline
 
   Dim pl As MediaPipeline
   Dim src, fpa, fde, cnv, scp, vid, jpg, snk As MediaControl
+
   Dim src, fpa, fde, cnv, scp, jpg, snk As MediaControl
 +
  Dim flt as MediaFilter
 +
 +
  pl = New MediaPipeline
 
    
 
    
  pl = New MediaPipeline
+
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=darkgreen>''/percorso/del/file.flac''</font>"
 +
 +
  fpa = New MediaControl(pl, "<FONT Color=#B22222>flacparse</font>")
 +
  fde = New MediaControl(pl, "<FONT Color=#B22222>flacdec</font>")
 +
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
 +
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
 +
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
 +
  flt = New MediaFilter(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1" &/ CStr(SECONDI)</font>)
 +
  jpg = New MediaControl(pl, "<FONT Color=#B22222>jpegenc</font>")
 +
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
 +
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 +
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
 +
 +
  src.LinkTo(fpa)
 +
  fpa.LinkTo(fde)
 +
  fde.LinkTo(cnv)
 +
  cnv.LinkTo(scp)
 +
  scp.LinkTo(flt)
 +
  flt.LinkTo(jpg)
 +
  jpg.LinkTo(snk)
 
    
 
    
  src = New MediaControl(pl, "filesrc")
+
  pl.Play()
  src["location"] = "<FONT Color=gray>''/percorso/del/file.flac''</font>"   <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
+
    
 
+
  Wait SECONDI
  fpa = New MediaControl(pl, "<FONT Color=#B22222>flacparse</font>")
+
  fde = New MediaControl(pl, "<FONT Color=#B22222>flacdec</font>")
+
  pl.Stop()
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
+
  pl.Close()
  scp = New MediaControl(pl, "<FONT Color=#B22222>wavescope</font>")
+
  scp["<FONT Color=#B22222>style</font>"] = 1        <FONT Color=gray>' ''"style" è la proprietà del plugin "wavescope", che qui impostiamo a 1''</font>
+
  Print "\n\e[0mOperazione terminata !"
  vid = New MediaControl(pl, "<FONT Color=#B22222>video/x-raw</font>,<FONT Color=#B22222>width=2000</font>,<FONT Color=#B22222>heigth=600</font>,<FONT Color=#B22222>framerate=1/</font><FONT Color=gray>''durata_del_file_audio_in_secondi''</font>")
+
   
  jpg = New MediaFilter(pl, "<FONT Color=#B22222>jpegenc</font>")
+
  End
  jpg["<FONT Color=#B22222>quality</font>"] = 50      <FONT Color=gray>' ''"quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50''</font>
 
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 
  snk["<FONT Color=#B22222>location</font>"] = "/tmp/forma_onda.jpg"
 
 
 
  <FONT Color=gray>' ''Colleghiamo fra loro all'interno della pipeline gli oggetti ''MediaControl'' impostati:''</font>
 
  src.LinkTo(fpa)
 
  fpa.LinkTo(fde)
 
  fde.LinkTo(cnv)
 
  cnv.LinkTo(scp)
 
  scp.LinkTo(vid)
 
  vid.LinkTo(jpg)
 
  jpg.LinkTo(snk)
 
   
 
    pl.State = Media.Playing
 
    pl.Play()
 
    Sleep 5
 
   
 
    exit_C(0)
 
 
 
  '''End'''
 

Versione attuale delle 18:16, 17 gen 2024

Mediante opportuni plugin di GStreamer utilizzati con la Classe MediaControl del Componente gb.media unitamente alla Classe MediaPipeline, è possibile ottenere in un file immagine JPEG la forma d'onda di un file audio.

La creazione della forma d'onda dell'audio è gestita dal plugin "wavescope". Questo pluin dispone di una proprietà, chiamata style, che fornisce diversi aspetti della forma d'onda audio a seconda del valore impostato (0 - 3).

Va precisato che il valore del dettaglio "framerate" è composto da una frazione il cui denominatore rappresenta i secondi di durata rappresentati nella/dalla forma d'onda. Pertanto se si vuole ottenere la forma d'onda dell'intero file audio, la frazione da assegnare sarà: 1/durata_del_file_audio_in_secondi.

Il tipo di file immagine va impostato verso la fine al'interno di un oggetto MediaControl mediante apposito plugin, prevedendo nel caso anche il valore della qualità di risoluzione dell'immagine.


Mostriamo di seguito un esempio pratico per ottenere in un file immagine .jpg la forma d'onda di alcuni formati di file audio.

Ottenere la forma d'onda di un file WAV

Private Const SECONDI As Integer = 5  ' Imposta in secondi la durata dell'onda da disegnare (cominciando dall'inizio dell'audio)


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, dcd, cnv, scp, jpg, snk As MediaControl
 Dim flt as MediaFilter

 pl = New MediaPipeline

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file.wav"   ' "location" è una proprietà del plugin "filesrc"
  
 dcd = New MediaControl(pl, "wavparse")
 cnv = New MediaControl(pl, "audioconvert")
 scp = New MediaControl(pl, "wavescope")
 scp["style"] = 1         ' "style" è la proprietà del plugin "wavescope", che qui impostiamo a 1
 flt = New MediaFilter(pl, "video/x-raw,width=2000,heigth=600,framerate=1" &/ CStr(SECONDI))
 jpg = New MediaControl(pl, "jpegenc")
 jpg["quality"] = 50      ' "quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/forma_onda.jpg"

' Collega fra loro all'interno della pipeline gli oggetti MediaControl impostati:
 src.LinkTo(dcd)
 dcd.LinkTo(cnv)
 cnv.LinkTo(scp)
 scp.LinkTo(flt)
 flt.LinkTo(jpg)
 jpg.LinkTo(snk)
   
 pl.Play()
   
 Wait SECONDI

 pl.Stop()
 pl.Close()

 Print "\n\e[0mOperazione terminata !"

End


Ottenere la forma d'onda di un file MP3

Private Const SECONDI As Integer = 5


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, par, dcd, cnv, scp, jpg, snk As MediaControl
 Dim flt as MediaFilter

 pl = New MediaPipeline

 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file.mp3"   ' "location" è una proprietà del plugin "filesrc"

 par = New MediaControl(pl, "mpegaudioparse")
 dcd = New MediaControl(pl, "mpg123audiodec")
 cnv = New MediaControl(pl, "audioconvert")
 scp = New MediaControl(pl, "wavescope")
 scp["style"] = 1         ' "style" è la proprietà del plugin "wavescope", che qui impostiamo a 1
 flt = New MediaFilter(pl, "video/x-raw,width=2000,heigth=600,framerate=1" &/ CStr(SECONDI))
 jpg = New MediaControl(pl, "jpegenc")
 jpg["quality"] = 50      ' "quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/forma_onda.jpg"

 src.LinkTo(par)
 par.LinkTo(dcd)
 dcd.LinkTo(cnv)
 cnv.LinkTo(scp)
 scp.LinkTo(flt)
 flt.LinkTo(jpg)
 jpg.LinkTo(snk)

 pl.Play()

 Wait SECONDI

 pl.Stop()
 pl.Close()

 Print "\n\e[0mOperazione terminata !"

End


Ottenere la forma d'onda di un file OGG

Per decodificare un file OGG, ci serviremo del plugin "decodebin".

Private Const SECONDI As Integer = 5


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, dcb, cnv, scp, jpg, snk As MediaControl
 Dim flt as MediaFilter

 pl = New MediaPipeline
  
 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file.ogg"

 dcb = New MediaControl(pl, "decodebin")
 cnv = New MediaControl(pl, "audioconvert")
 scp = New MediaControl(pl, "wavescope")
 scp["style"] = 1         ' "style" è la proprietà del plugin "wavescope", che qui impostiamo a 1
 flt = New MediaFilter(pl, "video/x-raw,width=2000,heigth=600,framerate=1" &/ CStr(SECONDI))
 jpg = New MediaControl(pl, "jpegenc")
 jpg["quality"] = 50      ' "quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/forma_onda.jpg"

 src.LinkTo(dcb)
 dcb.LinkLaterTo(cnv)
 cnv.LinkTo(scp)
 scp.LinkTo(flt)
 flt.LinkTo(jpg)
 jpg.LinkTo(snk)
  
 pl.Play()
 
 Wait SECONDI

 pl.Stop()
 pl.Close()

 Print "\n\e[0mOperazione terminata !"

End


Ottenere la forma d'onda di un file FLAC

Private Const SECONDI As Integer = 5


Public Sub Main()

 Dim pl As MediaPipeline
 Dim src, fpa, fde, cnv, scp, jpg, snk As MediaControl
 Dim flt as MediaFilter

 pl = New MediaPipeline
  
 src = New MediaControl(pl, "filesrc")
 src["location"] = "/percorso/del/file.flac"

 fpa = New MediaControl(pl, "flacparse")
 fde = New MediaControl(pl, "flacdec")
 cnv = New MediaControl(pl, "audioconvert")
 scp = New MediaControl(pl, "wavescope")
 scp["style"] = 1         ' "style" è la proprietà del plugin "wavescope", che qui impostiamo a 1
 flt = New MediaFilter(pl, "video/x-raw,width=2000,heigth=600,framerate=1" &/ CStr(SECONDI))
 jpg = New MediaControl(pl, "jpegenc")
 jpg["quality"] = 50      ' "quality" è la proprietà del plugin "jpegenc", che qui impostiamo a 50
 snk = New MediaControl(pl, "filesink")
 snk["location"] = "/tmp/forma_onda.jpg"

 src.LinkTo(fpa)
 fpa.LinkTo(fde)
 fde.LinkTo(cnv)
 cnv.LinkTo(scp)
 scp.LinkTo(flt)
 flt.LinkTo(jpg)
 jpg.LinkTo(snk)
  
 pl.Play()
 
 Wait SECONDI

 pl.Stop()
 pl.Close()

 Print "\n\e[0mOperazione terminata !"

End