Gambas France BETA


Pas de compte ? Incription

Enregistrer uniquement l'audio d'une web TV

1
AuteurMessages
vuott#1 Posté le 2/8/2024 à 01:19:52
Ne cedere ineluctabili possimus...... un code possible pour enregistrer via les ressources du Composant gb.media uniquement l'audio d'une web TV.
Les données audio sont enregistrées dans un fichier audio au format WAV.

------------CODEX--------------------

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


Public Sub Main() ' ...projet en ligne de commande !

Dim pl As MediaPipeline
Dim dcb, con, snk As MediaControl
Dim abi1, acon, ares, asnk As MediaControl
Dim abi2, fcon, wav, fsnk As MediaControl
Dim tm As Date

pl = New MediaPipeline

' Partie vidéo-graphique:
dcb = New MediaControl(pl, "uridecodebin")
dcb["uri"] = WEB_TV
con = New MediaControl(pl, "videoconvert")
snk = New MediaControl(pl, "autovideosink")

dcb.LinkLaterTo(con)
con.LinkTo(snk)

' Partie audio:
abi1 = New MediaControl(pl, "uridecodebin")
abi1["uri"] = WEB_TV
acon = New MediaControl(pl, "audioconvert")
ares = New MediaControl(pl, "audioresample")
asnk = New MediaControl(pl, "autoaudiosink")

abi1.LinkLaterTo(acon)
acon.LinkTo(ares)
ares.LinkTo(asnk)

' Partie enregistrement audio:
abi2 = New MediaControl(pl, "uridecodebin")
abi2["uri"] = WEB_TV
fcon = New MediaControl(pl, "audioconvert")
wav = New MediaControl(pl, "wavenc")
fsnk = New MediaControl(pl, "filesink")
fsnk["location"] = "/tmp/audio.wav" ' <----- Chemin d'accès au fichier audio WAV qui sera finalement créé.

abi2.LinkLaterTo(fcon)
fcon.LinkTo(wav)
wav.LinkTo(fsnk)

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


Public Sub Application_Read() ' Cet événement sera déclenché lorsque vous appuyez sur la touche "Entrée" de votre clavier.

bo = True

End
« Vita non suavis esse potest, nec Mors amara. »