gstreamer1.16.3 如何在h264parse中获取sps和pps信息
时间: 2024-03-05 20:48:41 浏览: 182
在 gstreamer1.16.3 中,可以通过设置 h264parse 元素的 "config-interval" 属性来控制是否输出 SPS 和 PPS,如果将该属性设置为 -1,则可以输出 SPS 和 PPS。
具体来说,可以通过以下代码获取 SPS 和 PPS 信息:
```
GstElement *pipeline, *src, *parser;
GstCaps *caps;
GstStructure *sps, *pps;
pipeline = gst_pipeline_new("pipeline");
src = gst_element_factory_make("filesrc", "src");
parser = gst_element_factory_make("h264parse", "parser");
g_object_set(G_OBJECT(parser), "config-interval", -1, NULL);
g_object_set(G_OBJECT(src), "location", "test.h264", NULL);
caps = gst_caps_new_simple("video/x-h264",
"stream-format", G_TYPE_STRING, "byte-stream", NULL);
gst_element_link_filtered(src, parser, caps);
gst_element_set_state(pipeline, GST_STATE_PLAYING);
// 获取 SPS 和 PPS
g_signal_emit_by_name(parser, "get-sps", 0, &sps);
g_signal_emit_by_name(parser, "get-pps", 0, &pps);
// 打印 SPS 和 PPS 信息
g_print("SPS: %s\n", gst_structure_to_string(sps));
g_print("PPS: %s\n", gst_structure_to_string(pps));
```
需要注意的是,获取 SPS 和 PPS 的操作应该在 pipeline 开始播放后才能执行。
阅读全文