Salvare in un file audio con il Componente gb.media l'audio e il video di una web-TV

Da Gambas-it.org - Wikipedia.
Versione del 1 ago 2024 alle 20:55 di Vuott (Discussione | contributi) (Creata pagina con "Di seguito un esempio pratico per salvare con alcune risorse del Componente ''gb.media'' in un file audio WAV l'audio e il video da una web-TV: Private Const WEB_TV As String...")

(diff) ← Versione meno recente | Versione attuale (diff) | Versione più recente → (diff)

Di seguito un esempio pratico per salvare con alcune risorse del Componente gb.media in un file audio WAV l'audio e il video da una web-TV:

Private Const WEB_TV As String = "https://clubbingtv-rakuten.amagi.tv/playlist720_p.m3u8"
Private bo As Boolean


Public Sub Main()

 Dim pl As MediaPipeline
 Dim dcb1, dcb2, con, snk As MediaControl
 Dim abi1, acon1, ares1, asn1 As MediaControl
 Dim abi2, aco2, asn2, the, vor, ogg As MediaControl
 Dim tm As Date

 pl = New MediaPipeline

' Parte per vedere il video:
 dcb1 = New MediaControl(pl, "uridecodebin")
 dcb1["uri"] = WEB_TV
 con = New MediaControl(pl, "videoconvert")
 snk = New MediaControl(pl, "autovideosink")

 dcb1.LinkLaterTo(con)
 con.LinkTo(snk)

' Parte per registrare il video:
 dcb2 = New MediaControl(pl, "uridecodebin")
 dcb2["uri"] = WEB_TV
 con = New MediaControl(pl, "videoconvert")
 the = New MediaControl(pl, "theoraenc")
 ogg = New MediaControl(pl, "oggmux")

 dcb2.LinkLaterTo(con)
 con.LinkTo(the)
 the.LinkTo(ogg)

''''''''''''''''''''''''''''''''''''''''''''
' Parte per ascoltare l'audio:
 abi1 = New MediaControl(pl, "uridecodebin")
 abi1["uri"] = WEB_TV
 acon1 = New MediaControl(pl, "audioconvert")
 ares1 = New MediaControl(pl, "audioresample")
 asn1 = New MediaControl(pl, "autoaudiosink")

 abi1.LinkLaterTo(acon1)
 acon1.LinkTo(ares1)
 ares1.LinkTo(asn1)

' Parte per registrare l'audio e creare il file video OGG-Theora finale:
 abi2 = New MediaControl(pl, "uridecodebin")
 abi2["uri"] = WEB_TV
 aco2 = New MediaControl(pl, "audioconvert")
 vor = New MediaControl(pl, "vorbisenc")
 asn2 = New MediaControl(pl, "filesink")
 asn2["location"] = "/tmp/video.ogg"

 abi2.LinkLaterTo(aco2)
 aco2.LinkTo(vor)
 vor.LinkTo(ogg)
 ogg.LinkTo(asn2)

 pl.Play

 tm = Now

 While Not bo
   Write "\r\e[0mTemps écoulé: \e[31m" & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond)))
   Wait 0.01
 Wend

 pl.Stop
 pl.Close
 Quit

End


' Per terminare il programma e creare il file audio, cliccare nella console/terminale e successivamente premere il tasto "Invio" della tastiera.
Public Sub Application_Read()

 bo = True

End