python – 从视频源(网络摄像头)发出新帧信号的Gstreamer消息

python – 从视频源(网络摄像头)发出新帧信号的Gstreamer消息,第1张

概述我正在尝试使用gstreamer将来自网络摄像头的流保存为一系列图像.到目前为止我已经编写了这段代码…… #!/usr/bin/pythonimport sys, osimport pygtk, gtk, gobjectimport pygstpygst.require("0.10")import gst def __init__(self): #.... 我正在尝试使用gstreamer将来自网络摄像头的流保存为一系列图像.到目前为止我已经编写了这段代码……

#!/usr/bin/pythonimport sys,osimport pygtk,gtk,gobjectimport pygstpygst.require("0.10")import gst def __init__(self):      #....       # Code to create a gtk Window      #....      self.player = gst.Pipeline("player")      source = gst.element_factory_make("v4l2src","vIDeo-source")      sink = gst.element_factory_make("xvimagesink","vIDeo-output")      caps = gst.Caps("vIDeo/x-raw-yuv,wIDth=640,height=480")      filter = gst.element_factory_make("capsfilter","filter")      filter.set_property("caps",caps)      self.player.add(source,filter,sink)      gst.element_link_many(source,sink)

在此之后,我试图通过总线创建一个信号来侦听来自源或接收器的任何消息,以指示已发送或接收到新帧,以便可以保存它.

bus = self.player.get_bus()      bus.add_signal_watch()      bus.connect("message::any",self.save_file,"Save file")

save_file是我的回调,我想保存文件.

def save_file(self,bus,msg):      print  "SAVED A NEW file"

我有两个问题,

>如何调用此回调.消息:: any不起作用.
>调用此消息时,如何访问图像缓冲区.

更新(2012年4月12日):

几个链接供参考

> v4l的python接口.但它并没有为我工作.当我试图抓住12.04 Ubuntu时似乎崩溃了.
http://code.google.com/p/python-video4linux2/
>为感兴趣的人提供网络摄像头查看器代码.但这不是我想要的,因为它使用gst-launch并且不提供我想要的管道控制级别. http://pygstdocs.berlios.de/pygst-tutorial/webcam-viewer.html

解决方法 Gstreamer Bus不适用于此目的.放在那里的消息相当于一些特殊事件,如流结束,元素状态改变等.通过元素的缓冲区(图像)通常不会在总线上生成任何消息.

您可以考虑几种可能性:

>在vIDeoink之前制作“tee”元素并将“multifilesink”与vIDeosink并行连接(你可能想要看一些图像编码器,如pngenc或jpegenc,并在multifilesink之前放置其中一个)
>像之前一样,但使用“appsink”,它允许您处理缓冲区并随心所欲地执行任何 *** 作
>如果要打开和关闭转储,请考虑使用“valve”元素

您可能希望在附加接收器上将“sync”属性设置为false(这会导致缓冲区尽快转储而不同步到时钟).考虑在tee之后添加一些队列(在ready-gt; paused过渡期间不会发生这种死锁).

总结

以上是内存溢出为你收集整理的python – 从视频源(网络摄像头)发出新帧信号的Gstreamer消息全部内容,希望文章能够帮你解决python – 从视频源(网络摄像头)发出新帧信号的Gstreamer消息所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1196756.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存