我想使用gstreamer綁定在Python中顯示圖像,但不使用GTK +(我在ARM上)。沒有gtk的顯示圖像
我知道如何聽音樂蟒蛇的GStreamer:
#!/usr/bin/python
# Simply initiates a gstreamer pipeline without gtk
import gst
import gobject
import sys
mainloop = gobject.MainLoop()
my_bin = gst.element_factory_make("playbin")
my_bin.set_property("uri", "file:///home/Lumme-Badloop.ogg")
my_bin.set_state(gst.STATE_PLAYING)
try:
mainloop.run()
except KeyboardInterrupt:
sys.exit(0)
我知道如何在GStreamer在命令行中顯示的圖像:
gst-launch-0.10 filesrc location=image.jpeg ! jpegdec ! freeze ! videoscale ! ffmpegcolorspace ! autovideosink
我想什麼是確切的同樣的事情,但使用Python。
我試了一些東西,代碼運行沒有錯誤,但沒有在屏幕上顯示。
pipe = gst.Pipeline("mypipe")
source = gst.element_factory_make("filesrc", "filesource")
demuxer = gst.element_factory_make("jpegdec", "demuxer")
freeze = gst.element_factory_make("freeze", "freeze")
video = gst.element_factory_make("videoscale", "scaling")
ffm = gst.element_factory_make("ffmpegcolorspace", "muxer")
sink = gst.element_factory_make("autovideosink", "output")
pipe.add(source, demuxer, freeze, video, ffm, sink)
filepath = "file:///home/image.jpeg"
pipe.get_by_name("filesource").set_property("location", filepath)
pipe.set_state(gst.STATE_PLAYING)
你有什麼想法可以幫助我嗎?
感謝提前!
順便說一句,我也有audiotest和videotest工作。下面是運行正常的示例:
# Create GStreamer pipeline
pipeline = gst.Pipeline("mypipeline")
# Set up our video test source
videotestsrc = gst.element_factory_make("videotestsrc", "video")
# Add it to the pipeline
pipeline.add(videotestsrc)
# Now we need somewhere to send the video
sink = gst.element_factory_make("xvimagesink", "sink")
# Add it to the pipeline
pipeline.add(sink)
# Link the video source to the sink-xv
videotestsrc.link(sink)
pipeline.set_state(gst.STATE_PLAYING)
您是否嘗試過其他接收器,例如'xvimagesink'或'ximagesink'? – jcollado 2012-01-09 15:02:47
我就在這個時刻。我通過videosink獲得了一個工作示例。我把它放在我的帖子的末尾。感謝您的幫助 – jlengrand 2012-01-09 15:15:01
@jlengrand:您可以回答自己的問題,並將其關閉。它通常是我們如何處理這種情況。 – Will 2012-01-11 14:00:00