根据描述创建QtGStreamer管道时出现问题



我正在使用Qt GStreamer包装器,并试图创建一个管道,如下所示:

QGst::ElementPtr bin = 
QGst::Bin::fromDescription("videotestsrc ! videoscale 
! video/x-raw,width=100,height=100");

然而,当我运行这个时,我会得到错误:

GStreamer-CRITICAL **: gst_bin_add: assertion 'GST_IS_ELEMENT (element)' failed
terminate called after throwing an instance of 'QGlib::Error'
what():  no element "video"

我认为"/"有一些问题,但不确定如何解决。

gstreamer管道带有:

gst-launch-1.0 -v  videotestsrc ! videoscale ! video/x-raw,width=100,height=100 
! xvimagesink -e --gst-debug-level=3 sync=false

工作良好。

我试着转义引号,比如:

QGst::ElementPtr bin = 
QGst::Bin::fromDescription(""videotestsrc ! videoscale 
! video/x-raw,width=100,height=100"");

但这给出了:

terminate called after throwing an instance of 'QGlib::Error'
what():  specified empty bin "bin", not allowed

在GStreamer中,这是caps(元素功能)的语法:

video/x-raw,width=100,height=100

解析器希望它位于两个元素之间,以确定它们应该如何连接。它本身不是一个元素。如果您想解析管道,可以在末尾添加一个identity。这将产生100x100个原始视频帧,具有一些未确定的色彩空间。

正如你可能意识到的,除非你把水槽连接到管道上,否则管道不会起任何作用

相关内容

  • 没有找到相关文章

最新更新