GStreamer元素avdec_h264无法实例化

时间:2014-03-08 19:55:24

标签: 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 ! 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在OS X上运行。设置包含路径和链接器标志。

更新

按照max taldykin outputs

的建议运行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"!

0 个答案:

没有答案