Convertire i formati audio mediante il Componente gb.media
Da Gambas-it.org - Wikipedia.
Versione del 19 mag 2018 alle 17:32 di Vuott (Discussione | contributi)
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.
Indice
Conversione audio dal formato WAV al formato MP3
Public Sub Main() Dim pl As MediaPipeline Dim src, wprs, cnv, lam, snk As MediaControl Dim primofile As String primofile = "/tmp/primofile.mp3" 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"] = primofile ' Colleghiamo fra loro all'interno della pipeline gli oggetti MediaControl impostati: src.LinkTo(wprs) wprs.LinkTo(cnv) cnv.LinkTo(lam) lam.LinkTo(snk) pl.Play() Print "Durata del brano: "; CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) Sleep pl.duration Copy primofile To "/tmp/file.mp3" pl.Stop pl.Close End
Conversione audio dal formato WAV al formato OGG
Public Sub Main() Dim pl As MediaPipeline Dim src, wprs, cnv, vor, mux, snk As MediaControl Dim primofile As String primofile = "/tmp/primofile.ogg" 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"] = primofile src.LinkTo(wprs) wprs.LinkTo(cnv) cnv.LinkTo(vor) vor.LinkTo(mux) mux.LinkTo(snk) pl.Play() Print "Durata del brano: "; CStr(Date(0, 0, 0, 0, 0, 0, pl.Duration * 1000)) Sleep pl.duration Copy primofile To "/tmp/file.ogg" pl.Stop pl.Close End
Conversione audio dal formato MP3 al formato OGG
Public Sub Main() Dim pl As MediaPipeline Dim src, mad, cnv, vor, mux, snk As MediaControl Dim primofile As String primofile = "/tmp/primofile.ogg" 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"] = primofile src.LinkTo(mad) mad.LinkTo(cnv) ' "location" è una proprietà del plugin "filesrc" cnv.LinkTo(vor) vor.LinkTo(mux) mux.LinkTo(snk) pl.Play() Sleep 5 Copy primofile To "/tmp/file.ogg" pl.Stop pl.Close End
Conversione audio dal formato MP3 al formato WAV
Public Sub Main() Dim pl As MediaPipeline Dim src, mad, cnv, wav, snk As MediaControl Dim primofile As String primofile = "/tmp/primofile.wav" pl = New MediaPipeline src = New MediaControl(pl, "filesrc") src["location"] = "/percorso/del/file.mp3" mad = New MediaControl(pl, "mad") cnv = New MediaControl(pl, "audioconvert") wav = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = primofile src.LinkTo(mad) mad.LinkTo(cnv) cnv.LinkTo(wav) wav.LinkTo(snk) pl.Play() Sleep 5 Copy primofile To "/tmp/file.wav" pl.Stop pl.Close End