我正在尝试创建x264enc
:
int main (int argc, char *argv[]) {
GstElement *pipeline, *src, *enc, *rtp, *sink;
...
...
src = gst_element_factory_make ("videotestsrc", "src");
enc = gst_element_factory_make ("x264enc", "enc");
rtp = gst_element_factory_make ("rtph264pay", "rtp");
sink = gst_element_factory_make ("udpsink", "sink");
pipeline = gst_pipeline_new ("test-pipeline");
if (!pipeline || !src || !enc || !rtp || !sink ) {
g_printerr ("Not all elements could be created.\n");
return -1;
}
}
如果我删除该行:
enc = gst_element_factory_make ("x264enc", "enc");
程序将运行,如果我运行命令:
gst-inspect x264enc
我获得有关编码器的信息,因此它存在......
我也尝试从x264enc
更改为TIVidEnc1
但没有成功。
任何想法......?
谢谢!
答案 0 :(得分:2)
您很可能没有在您的系统上安装x264enc编码器。此编码器不包含在gstreamer的基本软件包中,您需要手动下载并将其构建到您的系统上。 下载后将其构建到gstreamer的丑陋lib上。 我不确定,但是在Gstreamer更新的丑陋库中,它可能也包含在内。所以更新你的gstreamer也可以。