12 | |||||
Auteur | Messages | ||||
---|---|---|---|---|---|
vuott | #1 Posté le 1/8/2024 à 14:07:41 | ||||
Ne cedere ineluctabili possimus | Par curiosité, comment le plugin "aatv" de GStreamer transforme-t-il les vidéos avec les ressources du Composant gb.media: Public Sub Main() ' ...projet en ligne de commande ! Dim pl As MediaPipeline Dim src, dcb, aa, con, snk As MediaControl Dim asrc, abin, acon, ares, asnk As MediaControl Dim filevideo As String Dim tm As Date filevideo = "/chemin/du/FICHIER/vidéo" pl = New MediaPipeline ' Partie vidéo-graphique: src = New MediaControl(pl, "filesrc") src["location"] = filevideo dcb = New MediaControl(pl, "decodebin") aa = New MediaControl(pl, "aatv") con = New MediaControl(pl, "videoconvert") snk = New MediaControl(pl, "autovideosink") src.LinkTo(dcb) dcb.LinkLaterTo(aa) aa.LinkTo(con) con.LinkTo(snk) ' Partie audio: asrc = New MediaControl(pl, "filesrc") asrc["location"] = filevideo abin = New MediaControl(pl, "decodebin") acon = New MediaControl(pl, "audioconvert") ares = New MediaControl(pl, "audioresample") asnk = New MediaControl(pl, "autoaudiosink") asrc.LinkTo(abin) abin.LinkLaterTo(acon) acon.LinkTo(ares) ares.LinkTo(asnk) pl.Play Repeat ' Tant que la durée de la vidéo n'est pas détectée, le cycle se poursuit Wait 0.01 Until pl.Duration > 0.00 Print "Durée de la vidéo: "; Time(0, 0, 0, pl.Duration * 1000) tm = Now Repeat Write "\rTemps écoulé: " & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond))) Wait 0.01 Until DateDiff(tm, Now, gb.Millisecond) >= (pl.Duration * 1000) pl.Stop pl.Close End « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #2 Posté le 1/8/2024 à 14:47:21 | ||||
-- Unus Ex Altera -- | Merci Vuott, je m'en vais de ce pas le tester. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
valaquarus | #3 Posté le 1/8/2024 à 14:52:34 | ||||
-- Unus Ex Altera -- | Salute Vuott, j'ai cette erreur et je ne sais pas l'interpréter : Je n'ai fait que recopier le code dans un formulaire vide. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #4 Posté le 1/8/2024 à 14:56:49 | ||||
Ne cedere ineluctabili possimus | Tibi dico salutem, valaquarus. Vous devez définir un projet en ligne de commande. « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #5 Posté le 1/8/2024 à 14:57:45 | ||||
-- Unus Ex Altera -- | Honte à moi, je n'ai pas fait attention en recopiant que la class se nommait Main. Mai je n'ai rien qui s'affiche... Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #6 Posté le 1/8/2024 à 14:59:13 | ||||
Ne cedere ineluctabili possimus | La vidéo devrait apparaître dans une fenêtre autonome, générée par la ressource GStreamer. « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #7 Posté le 1/8/2024 à 15:03:55 | ||||
-- Unus Ex Altera -- | Bah ça ne veut pas j'ai ça maintenant : Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #8 Posté le 1/8/2024 à 17:36:21 | ||||
Ne cedere ineluctabili possimus | Étrange.... « Vita non suavis esse potest, nec Mors amara. » | ||||
vuott | #9 Posté le 1/8/2024 à 18:11:19 | ||||
Ne cedere ineluctabili possimus | Uhmmm... si vous déplacez ce groupe:
après la ligne:
que se passe-t-il ? « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #10 Posté le 1/8/2024 à 18:32:07 | ||||
-- Unus Ex Altera -- | Même punition après déplacement, même erreur. Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #11 Posté le 1/8/2024 à 19:03:20 | ||||
Ne cedere ineluctabili possimus | Uhmmm... Vita non suavis esse potest... « Vita non suavis esse potest, nec Mors amara. » | ||||
vuott | #12 Posté le 1/8/2024 à 19:14:19 | ||||
Ne cedere ineluctabili possimus | Essayons de couper le son : Nunc nobis sonus delendus est ! ____________________________________________________________________ Public Sub Main() ' ...projet en ligne de commande ! Dim pl As MediaPipeline Dim src, dcb, aa, con, snk As MediaControl Dim filevideo As String Dim tm As Date filevideo = "/chemin/du/ficher/vidéo" pl = New MediaPipeline ' Partie vidéo-graphique: src = New MediaControl(pl, "filesrc") src["location"] = filevideo dcb = New MediaControl(pl, "decodebin") aa = New MediaControl(pl, "aatv") con = New MediaControl(pl, "videoconvert") snk = New MediaControl(pl, "autovideosink") src.LinkTo(dcb) dcb.LinkLaterTo(aa) aa.LinkTo(con) con.LinkTo(snk) pl.Play Repeat ' Tant que la durée de la vidéo n'est pas détectée, le cycle se poursuit Wait 0.01 Until pl.Duration > 0.00 Print "Durée de la vidéo: "; Time(0, 0, 0, pl.Duration * 1000) tm = Now Repeat Write "\rTemps écoulé: " & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond))) Wait 0.01 Until DateDiff(tm, Now, gb.Millisecond) >= (pl.Duration * 1000) pl.Stop pl.Close End ---------------------------------- que se passe-t-il ? « Vita non suavis esse potest, nec Mors amara. » | ||||
valaquarus | #13 Posté le 1/8/2024 à 20:07:34 | ||||
-- Unus Ex Altera -- | Je suis désolé, même erreur, bien sûr au même endroit. Je place votre code au cas où je l'aurais mal copié :
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.5 | ||||
vuott | #14 Posté le 1/8/2024 à 20:47:36 | ||||
Ne cedere ineluctabili possimus | Je suis désolé, même erreur, bien sûr au même endroit. Non, non, non ! Vous devez utiliser un fichier vidéo, pas une adresse web-TV ! « Vita non suavis esse potest, nec Mors amara. » | ||||
vuott | #15 Posté le 1/8/2024 à 20:54:13 | ||||
Ne cedere ineluctabili possimus | Cependant, si vous souhaitez gérer le flux de données d'une web-TV, vous devez utiliser le plugin 'uridecodebin ' de GStreamer: -------------------------- 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, aa, con, snk As MediaControl Dim abin, acon, ares, asnk As MediaControl Dim tm As Date pl = New MediaPipeline ' Partie vidéo-graphique: dcb = New MediaControl(pl, "uridecodebin") dcb["uri"] = WEB_TV aa = New MediaControl(pl, "aatv") con = New MediaControl(pl, "videoconvert") snk = New MediaControl(pl, "autovideosink") dcb.LinkLaterTo(aa) aa.LinkTo(con) con.LinkTo(snk) ' Partie audio: abin = New MediaControl(pl, "uridecodebin") abin["uri"] = WEB_TV acon = New MediaControl(pl, "audioconvert") ares = New MediaControl(pl, "audioresample") asnk = New MediaControl(pl, "autoaudiosink") abin.LinkLaterTo(acon) acon.LinkTo(ares) ares.LinkTo(asnk) pl.Play tm = Now While Not bo Write "\rTemps écoulé: " & Str(Time(0, 0, 0, DateDiff(tm, Now, gb.Millisecond))) Wait 0.01 Wend pl.Stop pl.Close ' Après avoir utilisé l’événement "Application_Read()", vous devez utiliser ici l’instruction "Quit" pour terminer le programme: Quit End ' En cliquant avec la souris dans la console/terminal puis en appuyant sur la touche "Entrée" du clavier, le programme est terminé Public Sub Application_Read() bo = True End « Vita non suavis esse potest, nec Mors amara. » | ||||
12 |