从 GStreamer 中的流中提取帧

Extracting frames from a stream in GStreaner

大家好。正如标题所示,我希望从 GStreamer 中的活动流中获取单个帧。我已经通读了大部分手册,但还没有找到专门用来做这件事的东西。基本处理管道如下:

来源 (File/URL) -> 解压缩 -> MyProcessing

我知道最好的方法是通过 pads,但出于对干净代码的渴望,我希望使用 playbin,因为我将从文件和 web-based 流中读取。如果这不可能,我将开始使用单个文件和 URL 来源进行写作。

我的问题是,有没有办法使用 playbin 将 re-constructed 帧连同来自 packet/stream 的元数据定向到单独的 class/function/method?这可能是使用了一个我没有意识到的工具,它在 GStreamer 中或来自外部功能。

感谢您的帮助!

使用:GStreamer 1.4.5,Visual Studio 2012 (C++v11)

使用 uridecodebin 及其水槽垫。它与 playbin 一样通用,并且可以进一步流水线化。

顺便说一句,看看 imagefreeze 元素。