Differenze tra le versioni di "Estrarre e salvare l'audio da un file video mediante il Componente gb.media"
Da Gambas-it.org - Wikipedia.
Riga 2: | Riga 2: | ||
===Salvare l'audio in un file di formato WAV=== | ===Salvare l'audio in un file di formato WAV=== | ||
− | Private pl As | + | Private pl As MediaPipeline |
Private bo As Boolean | Private bo As Boolean | ||
Riga 58: | Riga 58: | ||
===Salvare l'audio in un file di formato MP3=== | ===Salvare l'audio in un file di formato MP3=== | ||
− | Private pl As | + | Private pl As MediaPipeline |
Private bo As Boolean | Private bo As Boolean | ||
Riga 114: | Riga 114: | ||
===Salvare l'audio in un file di formato OGG=== | ===Salvare l'audio in un file di formato OGG=== | ||
− | Private pl As | + | Private pl As MediaPipeline |
Private bo As Boolean | Private bo As Boolean | ||
Versione attuale delle 18:32, 6 nov 2023
Mostriamo alcuni esempi pratici per estrarre l'audio da un file video esalvarlo in un file audio.
Salvare l'audio in un file di formato WAV
Private pl As MediaPipeline Private bo As Boolean Public Sub Main() Dim src, bin, con, wav, snk As MediaControl Dim filevideo As String pl = New MediaPipeline As "PLine" filevideo = "/percorso/del/file/video" src = New MediaControl(pl, "filesrc") src["location"] = filevideo bin = New MediaControl(pl, "decodebin") con = New MediaControl(pl, "audioconvert") wav = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/file.wav" src.LinkTo(bin) bin.LinkLaterTo(con) con.LinkTo(wav) wav.LinkTo(snk) pl.Play() While pl.Duration < 1 Wait 0.01 Wend Print "Durata dell'audio: "; Time(0, 0, 0, pl.Duration * 1000) Wait pl.Duration End Public Sub PLine_Position() ' Mostra il tempo trascorso dall'avvio del video: Write "\rTempo trascorso: " & Time(0, 0, 0, pl.Position * 1000) Flush End Public Sub PLine_End() ' Questo Evento viene sollevato, quando l'estrazione è terminata pl.Close Print "\nEstrazione terminata !" Quit End
Salvare l'audio in un file di formato MP3
Private pl As MediaPipeline Private bo As Boolean Public Sub Main() Dim src, bin, con, mp3, snk As MediaControl Dim filevideo As String pl = New MediaPipeline As "PLine" filevideo = "/percorso/del/file/video" src = New MediaControl(pl, "filesrc") src["location"] = filevideo bin = New MediaControl(pl, "decodebin") con = New MediaControl(pl, "audioconvert") wav = New MediaControl(pl, "wavenc") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/file.mp3" src.LinkTo(bin) bin.LinkLaterTo(con) con.LinkTo(mp3) mp3.LinkTo(snk) pl.Play() While pl.Duration < 1 Wait 0.01 Wend Print "Durata dell'audio: "; Time(0, 0, 0, pl.Duration * 1000) Wait pl.Duration End Public Sub PLine_Position() ' Mostra il tempo trascorso dall'avvio del video: Write "\rTempo trascorso: " & Time(0, 0, 0, pl.Position * 1000) Flush End Public Sub PLine_End() ' Questo Evento viene sollevato, quando l'estrazione è terminata pl.Close Print "\nEstrazione terminata !" Quit End
Salvare l'audio in un file di formato OGG
Private pl As MediaPipeline Private bo As Boolean Public Sub Main() Dim src, bin, con, vor, ogg, snk As MediaControl Dim filevideo As String pl = New MediaPipeline As "PLine" filevideo = "/percorso/del/file/video" src = New MediaControl(pl, "filesrc") src["location"] = filevideo bin = New MediaControl(pl, "decodebin") con = New MediaControl(pl, "audioconvert") vor = New MediaControl(pl, "vorbisenc") ogg = New MediaControl(pl, "oggmux") snk = New MediaControl(pl, "filesink") snk["location"] = "/tmp/file.ogg" src.LinkTo(bin) bin.LinkLaterTo(con) con.LinkTo(vor) vor.LinkTo(ogg) ogg.LinkTo(snk) pl.Play() While pl.Duration < 1 Wait 0.01 Wend Print "Durata dell'audio: "; Time(0, 0, 0, pl.Duration * 1000) Wait pl.Duration End Public Sub PLine_Position() ' Mostra il tempo trascorso dall'avvio del video: Write "\rTempo trascorso: " & Time(0, 0, 0, pl.Position * 1000) Flush End Public Sub PLine_End() ' Questo Evento viene sollevato, quando l'estrazione è terminata pl.Close Print "\nEstrazione terminata !" Quit End