Gambas France BETA


Pas de compte ? Incription

H & W d'une vidéo

Ce sujet est résolu.

12
AuteurMessages
vuott#16 Posté le 30/6/2024 à 22:50:36
Ne cedere ineluctabili possimusVous pouvez également utiliser les classes 'MediaPipeline' et 'MediaControl' du composant gb.media en conjonction avec le plugin 'decodebin':

[Caput codicis]
Public Sub Main()

Dim pl As New MediaPipeline
Dim src, dcb, con, xis As MediaControl

src = New MediaControl(pl, "filesrc")
src["location"] = "/chemin/du/fichier/vidéo"
dcb = New MediaControl(pl, "decodebin")
con = New MediaControl(pl, "videoconvert")
xis = New MediaControl(pl, "xvimagesink")

src.LinkTo(dcb)
dcb.LinkLaterTo(con)
con.LinkTo(xis)

pl.Play()

With xis.GetLastImage()
Print "Dimensions du vidéo: "; .W; "x"; .H; " pixel"
End With

pl.Close

End
[terminus codicis]
« Vita non suavis esse potest, nec Mors amara. »
vuott#17 Posté le 1/7/2024 à 10:27:59
Ne cedere ineluctabili possimusJ'ai remarqué que, lors du lancement des codes avec gb.media, une image de la vidéo est affichée pendant un moment.
Afin d'éviter cet effet dans le second code, vous pourriez remplacer cette ligne:
1
xis = NEW MediaControl(pl, "xvimagesink")

par cette autre:
1
xis = NEW MediaControl(pl, "fakesink")
« Vita non suavis esse potest, nec Mors amara. »
valaquarus#18 Posté le 1/7/2024 à 11:31:12
-- Unus Ex Altera --Bonjour Vuott,
j'utilise
1
PRIVATE $mp AS MediaPlayer
pour plus de simplicité même si moins de contrôle et je n'ai pas cette image de départ.
Curieux d'utiliser :
1
2
$ecran.W = $mp.Video.Image.W
$ecran.H = $mp.Video.Image.H
Je n'aurais pas cherché une commande traitant d'image pour contrôler une vidéo d'autant que toutes les autres commandes :
1
$mp.Video.Image
ne traitent que des images et non de vidéos.
Système d'exploitation : KDE neon 6.0 ~ Version Gambas : 3.19.3
12