Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 05-05-2020 21:07:23

Elzen
Modérateur
Distrib. : Debian Sid GNU/Linux
Noyau : amd64 (à jour le vendredi)
(G)UI : Touhy
Inscription : 01-07-2014

Gstreamer : plus de vidéo.

Oy o/

J'ai hésité à poster ça dans Programmation, mais visiblement le souci ne vient pas de mon code.

J'ai un outil en Python3/GTK3 qui utilise Gstreamer pour afficher de la vidéo. Sauf que ça ne marche plus : la musique est bien jouée, mais l'affichage ne se fait jamais. Pour être sûr que je n'avais pas fait de bêtise sans faire exprès, je suis allé rechercher le script d'exemple dans le tutoriel dont je m'étais servi il y a longtemps pour comprendre comment ça marchait (c'est encore du Python 2, visiblement, mais comme ça utilise bien GIr, ça ne change pas grand chose si ce n'est que c'est triste), et ça confirme : chez moi, ce script-là aussi joue le son mais sans afficher la vidéo.

En inspectant un peu plus, il semble que malgré l'appel à bus.enable_sync_message_emission(), le signal sync-message::element ne soit jamais envoyé, faisant qu'il n'est pas possible de fournir l'XID de la fenêtre dans laquelle on veut afficher la vidéo…

Si quelqu'un a une piste sur comment régler le souci, je prend. Sinon, si vous pouvez au moins essayer le script d'exemple sus-mentionné et me dire si, chez vous, ça affiche quelque chose ou se contente de lire l'audio sans rien afficher, ça me permettrait au moins de savoir si le souci vient de chez moi ou pas.

Hors ligne

#2 05-05-2020 21:26:34

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Gstreamer : plus de vidéo.

voilà, ce que j'ai fait Elzen :

sudo chmod u+x playbin-example-video.py


ls -l playbin-example-video.py


-rwxr--r-- 1 alain alain 2604 mai    5 22:08 playbin-example-video.py


./playbin-example-video.py


./playbin-example-video.py: ligne 6: erreur de syntaxe près du symbole inattendu « 'Gst', »
./playbin-example-video.py: ligne 6: `gi.require_version('Gst', '1.0')'


j'ai sélectionné une zone de l'image dans molotov ,
le programme m'a copié 2 documents au format  PS - adobe - 3.0
respectivement "os" et "gi" mais aucune video .
ni avec vlc , ni avec molotov , en bureau gnome 3.36 / X11

il semble qu'il soit désormais impossible d'installer le module gstreamer dans python 2

Dernière modification par Debian Alain (05-05-2020 21:39:49)

Hors ligne

#3 06-05-2020 12:42:21

Elzen
Modérateur
Distrib. : Debian Sid GNU/Linux
Noyau : amd64 (à jour le vendredi)
(G)UI : Touhy
Inscription : 01-07-2014

Re : Gstreamer : plus de vidéo.

Salut,

après vérification, le script dont j'ai donné le lien dans le premier message a l'air d'avoir un petit souci : il y a un retour à la ligne malencontreux avant le shebang (le « #! /chemin/vers/l'executable » normalement situé sur la première ligne du fichier et indiquant avec quoi ton système doit appeler ce script), faisant que celui-ci n'est pas correctement pris en compte. Et donc, visiblement, il a chez toi été interprété comme un script shell, d'où le fait qu'il t'ait fait des choses bizarres (« import » est un mot-clef en Python, mais en Shell, ça correspond à une commande venue d'ImageMagick, visiblement).

D'où, deux remarques :
– ce n'est pas une spécialement bonne idée de donner les droits X à un fichier que tu viens de récupérer pour le lancer directement. En l'occurrence, c'est un fichier Python, donc tu peux simplement le lancer comme ça :

python playbin-example-video.py


Non seulement ça évite les soucis de scripts mal foutus comme ici, mais ça évite aussi de jouer avec les droits d'un fichier quand ce n'est pas nécessaire. D'ailleurs,
– tu n'as absolument pas besoin d'utiliser « sudo » pour changer les droits d'un fichier qui t'appartient, et c'est une très mauvaise idée de prendre l'habitude de le faire. Si vraiment tu avais besoin de changer les droits sur un script pour l'essayer (ce qui n'est absolument pas le cas ici), alors il vaudrait largement mieux lancer « chmod » directement.

Sinon, comme dit plus haut, ton souci ne vient absolument pas d'une éventuelle incompatibilité entre Gstreamer et Python 2, vu que là, tu n'as pas du tout utilisé Python. Il n'y a a priori pas d'incompatibilité de ce type. Le script est simplement censé ouvrir une fenêtre dans laquelle il te demande le fichier vidéo que tu veux jouer, sans aller toucher à tes fichiers par ailleurs (sinon j'aurais pris des précautions en vous le proposant ; même si, n'ayant jamais tenté de lui chmoder la tronche, je n'avais pas spécialement vérifié le shebang). Par contre, il est possible qu'il faille installer les paquets concernés, à savoir python-gi et gir1.2-gst* (à n'essayer de faire que si le script plante au démarrage, par contre).

Hors ligne

#4 06-05-2020 13:54:44

Debian Alain
Adhérent(e)
Lieu : Bretagne
Distrib. : stable / testing
Noyau : Linux 5.8.0-1-amd64
(G)UI : Gnome X.org (X11) / GDM3
Inscription : 11-03-2017
Site Web

Re : Gstreamer : plus de vidéo.

j' ai tenu compte de tes remarques , Elzen .

- rectifié le retour chariot avant le shebang .

- lancé suivant :

~/Vidéos$ python ~/Téléchargements/playbin-example-video.py


/home/alain/Téléchargements/playbin-example-video.py:6: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gst, GObject, Gtk
/home/alain/Téléchargements/playbin-example-video.py:9: PyGIWarning: GstVideo was imported without specifying a version first. Use gi.require_version('GstVideo', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import GdkX11, GstVideo
 



la video se lance bien , pas de souci de  son ni d'affichage .

je reteste :

~/Vidéos$ python ~/Téléchargements/playbin-example-video.py


/home/alain/Téléchargements/playbin-example-video.py:6: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
  from gi.repository import Gst, GObject, Gtk
/home/alain/Téléchargements/playbin-example-video.py:9: PyGIWarning: GstVideo was imported without specifying a version first. Use gi.require_version('GstVideo', '1.0') before import to ensure that the right version gets loaded.
  from gi.repository import GdkX11, GstVideo
 



ok à deux reprises , d'affilée .

testé sur deux fichiers  MKV .

pardon pour mon erreur , j'ai confondu  script python et script bash .
visiblement , je n'ai pas l'habitude des  scripts python .

videos du test d'un fichier . j'espère que tu aimera Elzen :
https://youtu.be/SH2iIpI6L6M ( copyrightée )
https://youtu.be/B7PbRV7iKFc ( libre )

Dernière modification par Debian Alain (07-05-2020 13:35:45)

Hors ligne

#5 06-05-2020 14:05:01

enicar
Membre
Lieu : ailleurs
Distrib. : sid
Noyau : 5.8.7
(G)UI : openbox
Inscription : 26-08-2010

Re : Gstreamer : plus de vidéo.

Debian Alain a écrit :

j'ai confondu  script python et script bash


Avec un script bash c'est la même chose, pas besoin de le rendre exécutable, on fait :


bash script.bash
 

Hors ligne

#6 07-05-2020 13:19:21

Elzen
Modérateur
Distrib. : Debian Sid GNU/Linux
Noyau : amd64 (à jour le vendredi)
(G)UI : Touhy
Inscription : 01-07-2014

Re : Gstreamer : plus de vidéo.

Suite à différents tests réalisés sur IRC (y compris avec une version Python 3 du script pour se mettre dans les mêmes conditions, même si ce n'est vraisemblablement pas la version de Python qui est en cause ici, et en utilisant le même fichier pour être sûrs que ça ne pouvait pas venir de là), il semble que d'autres gens, sous Sid comme moi, n'aient pas ce souci.

J'en viens donc à supposer que le souci est sans doute spécifique à ma machine. Peut-être un paquet qui manquerait entre GIr et Gstreamer, mais je ne vois pas lequel…

Si quelqu'un a une piste, je prends.

Hors ligne

Pied de page des forums