Differenze tra le versioni di "Convertire i formati audio mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
Riga 2: Riga 2:
  
 
Mostriamo di seguito qualche esempio pratico.
 
Mostriamo di seguito qualche esempio pratico.
 
  
 
====Conversione audio dal formato WAV al formato MP3====
 
====Conversione audio dal formato WAV al formato MP3====
Riga 70: Riga 69:
 
   mux = New MediaControl(pl, "<FONT Color=#B22222>oggmux</font>")
 
   mux = New MediaControl(pl, "<FONT Color=#B22222>oggmux</font>")
 
   snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 
   snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
   snk["location"] = "<FONT Color=gray>''/percorso/del/file.mp3''</font>"
+
   snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogg''</font>"
 
    
 
    
 
   src.LinkTo(wprs)
 
   src.LinkTo(wprs)
 
   wprs.LinkTo(cnv)
 
   wprs.LinkTo(cnv)
 +
  cnv.LinkTo(vor)
 +
  vor.LinkTo(mux)
 +
  mux.LinkTo(snk)
 +
 
 +
  pl.State = Media.Playing
 +
  pl.Play()
 +
 
 +
  Sleep 1
 +
 
 +
  While pl.Duration > pl.Position
 +
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
 +
  Wend
 +
 
 +
  exit_C(0)
 +
 
 +
'''End'''
 +
 +
 +
====Conversione audio dal formato MP3 al formato OGG====
 +
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()
 +
 
 +
  Dim pl As MediaPipeline
 +
  Dim src, mad, cnv, vor, mux, snk As MediaControl
 +
 
 +
  pl = New MediaPipeline
 +
 
 +
  src = New MediaControl(pl, "filesrc")
 +
  src["location"] = "<FONT Color=gray>''/percorso/del/file.mp3''</font>"  <FONT Color=gray>' ''"location" è una proprietà del plugin "filesrc"''</font>
 +
 
 +
  mad = New MediaControl(pl, "<FONT Color=#B22222>mad</font>")
 +
  cnv = New MediaControl(pl, "<FONT Color=#B22222>audioconvert</font>")
 +
  vor = New MediaControl(pl, "<FONT Color=#B22222>vorbisenc</font>")
 +
  mux = New MediaControl(pl, "<FONT Color=#B22222>oggmux</font>")
 +
  snk = New MediaControl(pl, "<FONT Color=#B22222>filesink</font>")
 +
  snk["location"] = "<FONT Color=gray>''/percorso/del/file.ogg''</font>"
 +
 
 +
  src.LinkTo(mad)
 +
  mad.LinkTo(cnv)
 
   cnv.LinkTo(vor)
 
   cnv.LinkTo(vor)
 
   vor.LinkTo(mux)
 
   vor.LinkTo(mux)

Versione delle 19:26, 28 set 2016

Utilizzando i plugin di GStreamer con le Classi MediaControl e MediaPipeline del Componente gb.media, è possibile effettuare diverse conversioni di file audio da un formato ad un altro.

Mostriamo di seguito qualche esempio pratico.

Conversione audio dal formato WAV al formato MP3

Library "libc:6"

' void exit (int __status)
' Terminate program execution with STATUS.
Private Extern exit_C(i As Integer) As Integer Exec "exit"


Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, wprs, cnv, lam, snk As MediaControl
  
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "filesrc")
  src["location"] = "/percorso/del/file.wav"   ' "location" è una proprietà del plugin "filesrc"
  
  wprs = New MediaControl(pl, "wavparse")
  cnv = New MediaControl(pl, "audioconvert")
  lam = New MediaControl(pl, "lamemp3enc")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/percorso/del/file.mp3"
  
  src.LinkTo(wprs)
  wprs.LinkTo(cnv)
  cnv.LinkTo(lam)
  lam.LinkTo(snk)
  
  pl.State = Media.Playing
  pl.Play()
  
  Sleep 1
  
  While pl.Duration > pl.Position
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
  Wend
  
  exit_C(0)
  
End


Conversione audio dal formato WAV al formato OGG

Library "libc:6"

' void exit (int __status)
' Terminate program execution with STATUS.
Private Extern exit_C(i As Integer) As Integer Exec "exit"


Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, wprs, cnv, vor, mux, snk As MediaControl
  
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "filesrc")
  src["location"] = "/percorso/del/file.wav"   ' "location" è una proprietà del plugin "filesrc"
  
  wprs = New MediaControl(pl, "wavparse")
  cnv = New MediaControl(pl, "audioconvert")
  vor = New MediaControl(pl, "vorbisenc")
  mux = New MediaControl(pl, "oggmux")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/percorso/del/file.ogg"
  
  src.LinkTo(wprs)
  wprs.LinkTo(cnv)
  cnv.LinkTo(vor)
  vor.LinkTo(mux)
  mux.LinkTo(snk)
  
  pl.State = Media.Playing
  pl.Play()
  
  Sleep 1
  
  While pl.Duration > pl.Position
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
  Wend
  
  exit_C(0)
  
End


Conversione audio dal formato MP3 al formato OGG

Library "libc:6"

' void exit (int __status)
' Terminate program execution with STATUS.
Private Extern exit_C(i As Integer) As Integer Exec "exit"


Public Sub Main()
 
 Dim pl As MediaPipeline
 Dim src, mad, cnv, vor, mux, snk As MediaControl
  
  pl = New MediaPipeline 
  
  src = New MediaControl(pl, "filesrc")
  src["location"] = "/percorso/del/file.mp3"   ' "location" è una proprietà del plugin "filesrc"
  
  mad = New MediaControl(pl, "mad")
  cnv = New MediaControl(pl, "audioconvert")
  vor = New MediaControl(pl, "vorbisenc")
  mux = New MediaControl(pl, "oggmux")
  snk = New MediaControl(pl, "filesink")
  snk["location"] = "/percorso/del/file.ogg"
  
  src.LinkTo(mad)
  mad.LinkTo(cnv)
  cnv.LinkTo(vor)
  vor.LinkTo(mux)
  mux.LinkTo(snk)
  
  pl.State = Media.Playing
  pl.Play()
  
  Sleep 1
  
  While pl.Duration > pl.Position
    Write #File.Out, "\rTempo: " & Date(0, 0, 0, 0, 0, 0, pl.Position * 1000)
  Wend
  
  exit_C(0)
  
End