什么是gstreamer中的关键帧

时间:2019-05-02 14:35:03

标签: tensorflow gstreamer gstreamer-1.0 nvidia-jetson

我是GStreamer的新手,正在尝试编写一些用例。

你们能简单地给我解释一下GStreamer中的关键帧吗?

另外,我有一个mp4视频,我需要从中找到一种模式并选择那些帧,然后推入一个单独的水槽。

为了选择mp4文件,我使用了filesrc源元素,但是它没有videotestsrc中具有的名为“ pattern”的属性。那么如何选择视频中的图案呢?

1 个答案:

答案 0 :(得分:0)

关键帧是每隔一定时间与标头信息一起出现的帧。我不知道很多其他细节,但是我录制的视频需要从关键帧开始,而不是一些随机缓冲区。

videotestsrc中的模式是生成的,而不是检测到的模式。您必须监视缓冲区并自己找到模式。为此,您可以向某些元素(例如,filesrc src pad)添加探针。

GstPad *pad = gst_element_get_static_pad (filesrc, "src");
gst_pad_add_probe(pad, GST_PAD_PROBE_TYPE_EVENT_BOTH, probe_callback_method, user_data, NULL);
g_object_unref(pad);

static GstPadProbeReturn probe_callback_method (GstPad * pad, GstPadProbeInfo *info, gpointer user_data) {
    GstBuffer* buf = gst_pad_probe_info_get_buffer(info);
    // Do something with the buffer
}