Я использую оберток Qt GStreamer и пытается создать трубопровод следующим образом:Проблема с созданием QtGStreamer трубопровода из описания
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
Спасибо за ответ. В конвейере я отлично работаю, используя 'gst-launch'. Однако у меня возникают проблемы, когда я пытаюсь создать его с помощью QtGStreamer. – Luca
В вашем коде QT у вас нет xvimagesink. Это намеренно? – mpr
Да, но я использую эквивалентную раковину. Проблема возникает еще до того, как конвейер подключится, и он жалуется на «нет элемента» видео », что заставляет меня думать, что это связано с разбором – Luca