Gstreamer 0.10 通过键盘切换输出选择器



我正在使用gstreamer 0.10版本。我的用例有两个分支(tee 元素)。在其中一个中,我有 ->解码器->tee->jpegenc->output-selector->fakesink ->多文件墨水

这是在应用程序中实现的。现在我正在用g_timeout_add在两个输出之间切换,但在这种情况下,如果它连接到假水槽 10 秒,它会同时连接到多文件墨水。我想存档:如果我按下一个按钮只将一帧保存为 jpg。如果我再次按下它,我应该以不同的名称保存它(这就是我使用多文件墨水的原因,文件墨水将覆盖它)。有人可以帮我提供提示吗,我如何从键盘上将其与事件存档。

首先,0.10 已经过时且无人保护,请考虑迁移到 1.0 版本。

这更多的是查看如何从控制台读取字符的情况。您可以使用getchar()或使用GIOChannel,因为您可能还需要应用程序(https://developer.gnome.org/glib/stable/glib-IO-Channels.html#g-io-channel-read-chars)的主循环。使用 GIOChannel 的示例。可以在此处找到一个示例应用程序:https://github.com/thiagoss/gst-test-apps/blob/master/apps/dvbsrc-capture-freq-switch.c(尽管它等待读取整行,但您可以根据需要进行修改)。

我对你的管道给出的另一个建议是在 jpegenc 之前放置输出选择器,以避免对图像进行编码只是为了丢弃。此外,使用缓冲区垫探测器可能更容易实现您想要的内容,该探测器将返回 FALSE 以丢弃缓冲区或 TRUE 以使其在 0.10 中通过,或者在 1.0 中返回_DROP并_OK返回(转到 1.0!这比为您的案例使用输出选择器更容易。

最新更新