GStreamer元素avdec_h264无法实例化

GStreamer元素avdec_h264无法实例化,c,gstreamer,h.264,C,Gstreamer,H.264,我试图用c代码构建以下运行良好的管道: gst-launch-1.0 -v udpsrc port=5000 \ ! application/x-rtp,payload=96,media=video,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=\"J2QAH6wrQCIC3y8A8SJq\\,KO4CXLA\\=\" \ ! rtph264depay ! avdec_h264 \ ! videoconvert ! au

我试图用c代码构建以下运行良好的管道:

gst-launch-1.0 -v  udpsrc port=5000 \
 ! application/x-rtp,payload=96,media=video,clock-rate=90000,encoding-name=H264,sprop-parameter-sets=\"J2QAH6wrQCIC3y8A8SJq\\,KO4CXLA\\=\" \
 ! rtph264depay ! avdec_h264 \
 ! videoconvert ! autovideosink sync=false
在本教程之后,我实例化了所需的元素,并检查它们是否已创建:

GstElement *pipeline, *source, *depay, *decode, *videoconvert, *sink;

// Initialize GStreamer
gst_init (NULL, NULL);

// Create the elements
source = gst_element_factory_make("udpsrc", "source");
depay = gst_element_factory_make("rtph264depay", "depay");
decode = gst_element_factory_make("avdec_h264", "decode");
videoconvert = gst_element_factory_make("videoconvert", "videoconvert");
sink = gst_element_factory_make("autovideosink", "sink");

// Create the empty pipeline
pipeline = gst_pipeline_new ("pipeline");

//Check if all elements have been created
if (!pipeline || !source || !depay || !decode || !videoconvert || !sink) {
    g_printerr ("Not all elements could be created.\n");
    return -1;
}
代码编译成功,但执行时的输出是“并非所有元素都可以创建”。进一步尝试使我发现解码器元素未创建

我的错在哪里?为什么没有创建解码器元素

在eclipse环境中使用gcc在OSX上进行Im。已设置包含路径和链接器标志

更新:

按照max taldykin的建议,使用GST_DEBUG=3运行代码

0:00:00.011208000  5624 0x7f863a411600 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:467:gst_element_factory_make: no such element factory "avdec_h264"!
0:00:00.011220000  5624 0x7f863a411600 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:467:gst_element_factory_make: no such element factory "videoconvert"!

尝试使用
GST\u DEBUG=1
环境变量集运行应用程序。这将为您提供一些关于为什么不创建元素的信息。我已经更新了最初的问题。GST_DEBUG=1没有任何输出,但GST_DEBUG=3有。是否确实将可执行文件链接到与从命令行运行的gstreamer版本相同的gstreamer?如果gstreamer安装在非标准位置,您还可以检查
GST\u PLUGIN\u SYSTEM\u PATH
env变量。您是对的,我安装了一个过时的版本。我现在已经安装了gstreamer的当前版本1.2.3,包括插件。仍然
GST\u DEBUG=4
输出
0:00:00.012627000 85728 0x7fc303411200信息GST\u元素工厂gstelementfactory.c:456:GstElement*GST\u元素工厂制造(const gchar*,const gchar*):没有这样的元素工厂“avdec\u h264”get-inspect-1.0确认了libav插件中存在h264解码器。对不起,我现在没主意了。可能尝试双重检查
GST\u PLUGIN\u SYSTEM\u PATH
,或者在干净的系统上构建可执行文件。