Differenze tra le versioni di "Estrarre e salvare l'audio da un file video mediante il Componente gb.media"

Da Gambas-it.org - Wikipedia.
(Creata pagina con "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 New MediaPip...")
 
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
Mostriamo alcuni esempi pratici per estrarre l'audio da un file video esalvarlo in un file audio.
 
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===
 
===Salvare l'audio in un file di formato WAV===
  Private pl As New MediaPipeline
+
  Private pl As MediaPipeline
 
  Private bo As Boolean
 
  Private bo As Boolean
 
   
 
   
Riga 28: Riga 27:
 
   con.LinkTo(wav)
 
   con.LinkTo(wav)
 
   wav.LinkTo(snk)
 
   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()
 +
 +
<FONT Color=gray>' ''Mostra il tempo trascorso dall'avvio del video:''</font>
 +
  Write "\rTempo trascorso: " & Time(0, 0, 0, pl.Position * 1000)
 +
  Flush
 +
 +
End
 +
 +
 +
Public Sub PLine_End() <FONT Color=gray>' ''Questo Evento viene sollevato, quando l'estrazione è terminata''</font>
 +
 +
  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 = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 +
 
 +
  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()
 +
 +
<FONT Color=gray>' ''Mostra il tempo trascorso dall'avvio del video:''</font>
 +
  Write "\rTempo trascorso: " & Time(0, 0, 0, pl.Position * 1000)
 +
  Flush
 +
 +
End
 +
 +
 +
Public Sub PLine_End() <FONT Color=gray>' ''Questo Evento viene sollevato, quando l'estrazione è terminata''</font>
 +
 +
  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 = "<FONT Color=darkgreen>''/percorso/del/file/video''</font>"
 +
 
 +
  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()
 
   pl.Play()

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