首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GStreamer:在gst-launch 1.0命令中工作的管道,但不在c++代码中使用。

GStreamer:在gst-launch 1.0命令中工作的管道,但不在c++代码中使用。
EN

Stack Overflow用户
提问于 2019-04-02 15:52:41
回答 1查看 1.2K关注 0票数 3

我有一条管道在我的客户上运行:

代码语言:javascript
复制
gst-launch-1.0 tcpclientsrc port=3344 host=10.0.0.7 ! tsdemux ! h264parse ! avdec_h264 ! autovideosink

效果很好。现在,我正在尝试将其转换为一个c++程序,该程序使用qmlgl接收器将其显示在Qt小部件中。

我想出了下面的测试代码,它适用于我:

代码语言:javascript
复制
GstElement *pipeline = gst_pipeline_new(NULL);
GstElement *src = gst_element_factory_make("videotestsrc",NULL);
GstElement *glupload = gst_element_factory_make("glupload",NULL);
GstElement *qmlglsink = gst_element_factory_make("qmlglsink",NULL);

g_assert(src && glupload && qmlglsink);

gst_bin_add_many(GST_BIN(pipeline), src, glupload, sink);
gst_element_link_many(src, glupload, sink, NULL);

现在,我试图以这种方式转换另一个管道:

代码语言:javascript
复制
GstElement *pipeline = gst_pipeline_new(NULL);
GstElement *src = gst_element_factory_make("tcpclientsrc",NULL);
GstElement *demuxer = gst_element_factory_make("tsdemux",NULL);
GstElement *parser = gst_element_factory_make("h264parse",NULL);
GstElement *decoder = gst_element_factory_make("avdec_h264",NULL);
GstElement *glupload = gst_element_factory_make("glupload",NULL);
GstElement *qmlglsink = gst_element_factory_make("qmlglsink",NULL);

g_assert(src && demuxer && parser && decoder && glupload && qmlglsink);

g_object_set(G_OBJECT(src), "host", "10.0.0.7", NULL);
g_object_set(G_OBJECT(src), "port", 3344, NULL);

gst_bin_add_many(GST_BIN(pipeline), src, demuxer, parser, decoder, glupload, sink);
gst_element_link_many(src, demuxer, parser, decoder, glupload, sink, NULL);

但当我运行后一条管道时,它什么也做不了。没有错误,但也没有视频流。我想我漏掉了一些链接命令。请帮帮忙,告诉我我做错了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-02 17:21:41

没有错误?您是否在管道总线上轮询错误消息?你用GST_DEBUG=3运行这个应用程序来检查提示吗?

但从它的角度来看,我认为avdec_h264将使用I420作为输出视频格式,而qmlglsink则需要RGBA格式。所以你少了一个颜色空间转换器。因为你是上传到GL无论如何,我建议使用glcolorconvert

因此,更改代码以创建如下所示的管道:.. ! glupload ! glcolorconvert ! qmlglsink

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55478903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档