mjpeg 流的 python GTK 容器
我有一个来自网络摄像头的 mjpeg 流,并希望将其显示在使用 pygtk 用 python 编写的应用程序中。 该流是来自驱动程序的一串字节。 哪个小部件最适合显示此内容?在将其放入小部件之前我是否需要进行一些中间转换?我应该编写自己的小部件来执行此操作吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
GTK+ 不包含能够解码和渲染视频的本机小部件。
您可能应该研究一下 GStreamer,它是一个构建在与 GTK+ 相同的 GObject 框架上的流媒体工具包。
它具有 GstXvImageSink 能够使用 X11 渲染视频,您应该能够将其配置为在 GTK+ 小部件之上渲染。
GTK+ does not contain a native widget capable of decoding and rendering video.
You should probably look into GStreamer, which is a streaming-media toolkit built on the same GObject framework as GTK+.
It has the GstXvImageSink that is capable of rendering video using X11, and you should be able to configure it to render on top of a GTK+ widget.
这个示例帮助我开始使用 gstreamer,它展示了如何抓取网络摄像头流并将其显示在小部件中。
http://pygstdocs.berlios.de/pygst-tutorial/webcam-viewer。 html
This example helped me getting started with gstreamer, it shows how one grabbs the webcam stream and displays it in an widget.
http://pygstdocs.berlios.de/pygst-tutorial/webcam-viewer.html
可以使用图像小部件来显示 MJPEG 流。
启动后台线程,让它读取流并使用 gtk.gdk.PixbufLoader 和 image_widget.set_from_pixbuf 更新图像
例如:
完整的工作示例如下:https://gist.github.com/mic159/fa2181a69f9119871b87
It is possible to use an Image widget to show the MJPEG stream.
Start a background thread, and have it read the stream and update the Image using
gtk.gdk.PixbufLoader
andimage_widget.set_from_pixbuf
For example:
Full working example is here: https://gist.github.com/mic159/fa2181a69f9119871b87