gstreamer liaisons python pour windows
Je suis à la recherche dans gstreamer comme un moyen pour choisir un appareil vidéo à partir d'une liste de nourrir un opencv script.
Je ne comprends absolument pas comment utiliser gstreamer avec python sous windows. J'ai installé le Windows gstreamer 1.07 binaires de la gstreamer site officiel. Cependant, je ne pouvais pas importer le pygst
et gst
modules en python.
>>> import pygst
Traceback (most recent call last):
File "<pyshell#0>", line 1, in <module>
import pygst
ImportError: No module named pygst
>>>
J'ai vérifié l'installation de gstreamer, et il semble y avoir aucune pygst.py
fourni. Il y a toutefois un fichier nommé gst-env
qui contient les chemins d'accès pour les variables d'environnement (qui n'ont pas été ajoutées pour les variables système lors de l'installation. Je l'ai vérifié.
D'autres questions sur le même problème ici et ici, par exemple, n'utilisent tous le winbuild versions de gstreamer. Pourquoi donc?
Je suis totalement perdue sur ce coup.
Modifier
Ok, je l'ai réussi en utilisant le SDK pour Gstreamer 0.10 (dans lequel il y a un pygst.py
), mais n'est-il pas un moyen d'utiliser le Gstreamer 1.0 série, depuis 0,10 est en "fin de vie"?
la réponse suivante n'est pas plus de travail avec Python 2.7 x et Gstreamer 1.x dans Windows 8.1 64-bit. Quelqu'un peut s'il vous plaît poster une réponse adéquate à ce sujet.
OriginalL'auteur Raoul | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
C'est un peu tard, mais j'espère qu'il va aider.
Le moyen le plus facile à utiliser GStreamer 1.0 est de télécharger la dernière version:
http://sourceforge.net/projects/pygobjectwin32/files/
Cela permettra d'installer Python (2.7 et 3.3) modules et, éventuellement, avec les plugins GStreamer.
Toutefois, si vous avez déjà GStreamer 0.10 SDK (à partir de docs.gstreamer.com/display/GstSDK/Home) et de l'ancienne installation de GStreamer 1.0 quelque part, il pourrait y avoir quelques problèmes avec l'exécution de Gstreamer 0.10 Python programmes, comme ImportError: échec de chargement de la DLL, etc. Voici ma configuration détaillée pour tout:
Installation de Tps 0.10 SDK et des modules Python
GSTREAMER_SDK_ROOT_X86=..votre sdk dir
GST_PLUGIN_PATH=%GSTREAMER_SDK_ROOT_X86%\lib\gstreamer-0.10
Path=%GSTREAMER_SDK_ROOT_X86%\bin;%GSTREAMER_SDK_ROOT_X86%\lib;%Path%
..votre %GSTREAMER_SDK_ROOT_X86% \lib\python2.7\site-packages
..votre %GSTREAMER_SDK_ROOT_X86% \lib\python2.7\site-packages\tps-0.10
Installation de Tps 1.0 et les modules Python
GSTREAMER_1_0_ROOT_X86=..Tps 1.0 installation dir
GST_PLUGIN_PATH_1_0=%GSTREAMER_1_0_ROOT_X86%\lib\gstreamer-1.0\
Path=%GSTREAMER_1_0_ROOT_X86%\bin;%GSTREAMER_1_0_ROOT_X86%\lib;%Path%
%GSTREAMER_1_0_ROOT_X86%\bin
%GSTREAMER_1_0_ROOT_X86%\lib
libgirepository-1.0-1
libpyglib-gi-2.0-python27-0
lib répertoire avec le .typelib fichiers
et quelques exemples simples semblent bien fonctionner.
Vous pouvez tester votre installation comme ceci:
python2 -c "importer gi; gi.require_version('Tps', '1.0'); à partir de gi.référentiel à l'importation de la Tps, Tps.init(Aucun); pipeline = Tps.parse_launch('playbin uri=http://docs.gstreamer.com/media/sintel_trailer-480p.webm'); pipeline.set_state(Tps.État.De la LECTURE); bus = pipeline.get_bus();msg = bus.timed_pop_filtered(Tps.CLOCK_TIME_NONE, la Tps.MessageType.ERREUR | Tps.MessageType.EOS)"
Edit:
Si vous utilisez les deux GStreamer0.10 et GStreamer1.0, il est préférable de créer un environnement virtuel pour GStreamer0.10 et le mettre .la pth fichiers dans son site-packages répertoire. Voir mon commentaire ci-dessous.
HTH,
Tom
Vous pouvez utiliser n'importe quel éditeur de texte. From: docs.python.org/2/library/site.html _A chemin d'accès du fichier de configuration est un fichier dont le nom est de la forme nom.la pth et existe dans l'une des quatre répertoires mentionnés ci-dessus; son contenu sont des éléments supplémentaires (un par ligne) pour être ajouté à sys.chemin d'accès. _
Quelques notes sur Tom de procédure: 1 - assurez-vous mettre à jour le chemin d'accès au système en tapant la commande "echo %path%" dans votre cmd. 2 - Pour GStreamer 0.10 aujourd'hui avec la version de GStreamer SDK, le téléchargement et l'installation de pygtk-tout-en-un-2.24.2.win32-py2.7 cassé tout (Windows 8 pour info). Le SDK contient déjà gtk. (vérifier lib/python2.7/site-packages) - je ne suis pas sûr que l'ajout d' %GSTREAMER_SDK_ROOT_X86% \lib\python2.7\site-packages\tps-0,10 est nécessaire, puisque vous utilisez de tps en appelant pygst.require('0.10') 3 - le Dernier point: un grand MERCI parce que j'ai essayé pendant des jours.
Il est plus que ça. Si vous n'ajoutez pas le bin et lib chemins d'accès à la démarrer de votre chemin (à savoir Path=%Path%;%GSTREAMER_SDK_ROOT_X86%\bin;%GSTREAMER_SDK_ROOT_X86%\lib), vous pouvez obtenir l'erreur suivante: "impossible de réserver un espace pour cygwin le tas de l'erreur Win32 0".
Oui, en attendant, j'ai aussi eu quelques problèmes avec cette configuration. Enfin, j'ai créé une virtualenv pour Gst0.10, lequel a besoin de la .la pth fichiers dans son site-packages répertoire (comme ci-dessus), et installé Gst1.0 de tout-en-un package par défaut d'installation de Python. L'autre solution possible est d'utiliser Python 2.7 pour Gst0.10 et Python 3.x pour Gst1.0. Outils Python pour VS, heureusement, de gérer tout cela très bien. Je pense que j'ai ajouté %GSTREAMER_SDK_ROOT_X86% \lib\python2.7\site-packages\tps-0.10 dans le .la pth fichier à intellisense pour la tps dans le VS Pytools.
OriginalL'auteur Tom
Étape 1: Windows 8.1 64 bits
Étape 2: Télécharger et Installer Python
Étape 3: Télécharger installer liaisons Python pour Gstreamer 1.0
Étape 4: Exécution de ce code
Étape 5: Vous devez attendre 10 minutes pour voir un résultat semblable à la suivante.
Car il faut du temps pour quelque raison
Désolé, je n'ai rien avec Gstreamer équipe 🙂
J'ai essayé cela, et après le film a été fait lecture, j'ai eu beaucoup d'erreurs de ce type:
GStreamer-CRITICAL **: Trying to dispose element inputselector0, but it is playing instead of the NULL state. You need to explixitly set elements to the NULL state before dropping the final reference, to allow them to clean up. This problem may also be caused by refcounting bug in the application or some element.
OriginalL'auteur YumYumYum
Le programme d'installation à partir de http://sourceforge.net/projects/pygobjectwin32/files/ il fonctionne pour le cas de test que Tom a donné. Essayez de faire correspondre plugins installés par pygi programme d'installation avec l'un de officiel gstreamer.
Le programme d'installation essaie d'être un "portable et privé" de l'installation pour chaque python sans registre/environne de vars changements.
Ma remarque à propos de l'exécution de dll, il est recommandé de ne pas mélanger le runtime cause l'un de pygi est faite spécialement pour un python.k.lié à msvcrt préféré par python, et l'utilisation de stat() de la convention de celui utilisé par python. Si une api publique telle désinvolture de la stat() utiliser la convention différente que les autres dll puis à l'exécution de mélange, pourrait aboutir à un silence de crash. Autre que cela, il peut fonctionne très bien.
OriginalL'auteur tumagonx