Est-ce que quelqu'un sait comment j'utiliserais une fenêtre tkinter comme une sortie d'un videoink/pipeline depuis python? J'ai trouvé des méthodes pour beaucoup d'autres systèmes GUI, mais je ne veux pas avoir à utiliser tkinter et autre chose ensemble xxx merci d'avance xSortie vidéo dans Tkinter De GStreamer?
3
A
Répondre
2
Cela fonctionne pour moi sur Windows 32 bits. Je reçois une erreur seg sur Linux ou Windows 64 bits. Désolé, je ne sais pas pour Mac.
Vous devez utiliser bus.connect ("synchronisation message :: élément", on_sync_message) et passer un ID widget Tk (winfo_id), comme vous pouvez le voir dans le code suivant. Le conteneur peut être n'importe quel widget Tk, mais un cadre noir solide semble fonctionner le mieux pour moi.
import sys, os
from Tkinter import *
import pygst
pygst.require("0.10")
import gst
def start():
player.set_property('video-sink', None)
player.set_property("uri", "file:///" + sys.argv[1])
player.set_state(gst.STATE_PLAYING)
def on_sync_message(bus, message):
if message.structure is None:
return
message_name = message.structure.get_name()
if message_name == "prepare-xwindow-id":
imagesink = message.src
imagesink.set_property("force-aspect-ratio", True)
imagesink.set_xwindow_id(mwin_id)
window = Tk()
window.geometry("500x400")
movie_window = Frame(window,bg='#000000')
movie_window.pack(side=BOTTOM,anchor=S,expand=YES,fill=BOTH)
mwin_id = movie_window.winfo_id()
player = gst.element_factory_make("playbin2", "player")
fakesink = gst.element_factory_make('fakesink', 'novideo')
player.set_property('video-sink', fakesink)
bus = player.get_bus()
bus.add_signal_watch()
bus.enable_sync_message_emission()
bus.connect("sync-message::element", on_sync_message)
start()
window.mainloop()
+0
Je reçois une erreur de segmentation sur Linux – erjoalgo
Questions connexes
- 1. sortie vidéo dans Tkinter?
- 2. Application de streaming vidéo en utilisant GStreamer
- 3. Fuite de mémoire d'enregistrement vidéo gStreamer
- 4. Évier vidéo Gstreamer pour Raspberry Pi
- 5. Gstreamer appsrc streaming vidéo sur le réseau
- 6. Impossible Superposez sur Gstreamer Vidéo avec Gtk.Overlay
- 7. Extrait une capture d'écran de la vidéo dans GStreamer?
- 8. python gstreamer lire plusieurs flux vidéo
- 9. Changer le format vidéo sur GStreamer
- 10. Gstreamer vidéo à la texture opengl
- 11. Utilisation de Gstreamer avec Kivy
- 12. Comment mettre en pause l'enregistrement vidéo dans GStreamer
- 13. Comment lire l'audio et la vidéo ensemble dans GStreamer?
- 14. Ajouter un traitement OpenCV à un flux vidéo gstreamer
- 15. gstreamer: Comment modifier la résolution d'entrée/sortie de la webcam?
- 16. Tkinter Affichage de la sortie du terminal
- 17. Appel de Gstreamer dans openCV
- 18. Superposition de widgets sur la vidéo gstreamer en qt
- 19. Impression de la sortie python tkinter
- 20. records GStreamer
- 21. Convertir la vidéo en WebM à l'aide de GStreamer
- 22. Où trouver des exemples de streaming vidéo en direct (GStreamer)?
- 23. Python - lecture de codes 2D, sortie incorrecte dans Tkinter
- 24. Gstreamer - utilisation d'une variable pour le chemin vidéo
- 25. Distorsion de couleur Gstreamer-java
- 26. Transitions vidéo avec GStreamer & GNonLin ne fonctionne pas
- 27. GStreamer RTP full-duplex vidéo in/out avec single rtpbin
- 28. Gstreamer MUX, casquettes refusé
- 29. Comment capturer des images vidéo en utilisant gstreamer-sharp
- 30. Flux vidéo H.264 sur rtp en utilisant gstreamer
liés: [? Way pour lire des fichiers vidéo dans Tkinter] (http://stackoverflow.com/q/7227162/4279) – jfs