Gstreamer:使用appsink从网络摄像头捕捉静止帧?

时间:2016-01-16 00:54:38

标签: c linux gstreamer webcam

我目前有一个可用的C程序,可以将连续帧从网络摄像头流式传输到应用程序链接。但是,我只对用户按键时捕获单帧感兴趣。

换句话说:当空闲时,appsink不会收到任何帧,但是当按下某个键时,appsink应从相机源中拉出一个新帧。

我尝试使用output_selector作为“阀门”在fakesinkappsink之间切换帧。因此,当应用程序空闲时,管道正在运行,看起来像

v4l2src -> output_selector -> fakesink

当我想捕获一个帧时,我改变了output_selector的活动垫,所以管道看起来像这样:

v4l2src -> output_selector -> jpegenc -> appsink

然后我做gst_app_sink_pull_sample()并将活动垫切换回fakesink。这个问题是,有时候(通常是每次其他捕获)我得到的重复帧与最后一帧相同。我该如何解决这个问题?有没有其他方法可以达到预期的行为?

0 个答案:

没有答案