我目前有一个可用的C程序,可以将连续帧从网络摄像头流式传输到应用程序链接。但是,我只对用户按键时捕获单帧感兴趣。
换句话说:当空闲时,appsink不会收到任何帧,但是当按下某个键时,appsink应从相机源中拉出一个新帧。
我尝试使用output_selector
作为“阀门”在fakesink
和appsink
之间切换帧。因此,当应用程序空闲时,管道正在运行,看起来像
v4l2src -> output_selector -> fakesink
当我想捕获一个帧时,我改变了output_selector
的活动垫,所以管道看起来像这样:
v4l2src -> output_selector -> jpegenc -> appsink
然后我做gst_app_sink_pull_sample()
并将活动垫切换回fakesink
。这个问题是,有时候(通常是每次其他捕获)我得到的重复帧与最后一帧相同。我该如何解决这个问题?有没有其他方法可以达到预期的行为?