如何在Windows的Qt项目中使用gstreamer?

时间:2018-09-20 14:05:04

标签: c++ c qt gstreamer

Here you can find a qt project to reproduce the problem

我需要在 Qt / Qml 应用程序内使用 gstreamer 。我安装了 gstreamer-1.0-devel-x86_64-1.14.3 gstreamer-1.0-x86_64-1.14.3

由于某些原因未设置 GST_PLUGIN_PATH 。我自己用putenv()进行设置。

我收到了很多警告,请参阅第一个警告

(gstreamer-test.exe:8540): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgsta52dec.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgsta52dec.dll': The specified module could not be found.

(gstreamer-test.exe:8540): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstaccurip.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstaccurip.dll': The specified module could not be found.

(gstreamer-test.exe:8540): GStreamer-WARNING **: Failed to load plugin 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstadder.dll': 'C:\gstreamer\1.0\x86_64\lib\gstreamer-1.0\libgstadder.dll': The specified module could not be found.

在代码中,我尝试制作多个GstElement

/* Create gstreamer elements */
GstElement *pipeline, *source, *demuxer, *decoder, *conv, *sink;
pipeline = gst_pipeline_new ("audio-player");
source   = gst_element_factory_make ("filesrc",       "file-source");
demuxer  = gst_element_factory_make ("oggdemux",      "ogg-demuxer");
decoder  = gst_element_factory_make ("vorbisdec",     "vorbis-decoder");
conv     = gst_element_factory_make ("audioconvert",  "converter");
sink     = gst_element_factory_make ("autoaudiosink", "audio-output");

然后我检查每个GstElement是否构建良好。结果显示,

source == nullptr
demuxer == nullptr
decoder == nullptr
conv == nullptr

例如,如果为source,则表示未找到factoryname filesrc

但是gst-inspect-1.0.exe发现了它,如屏幕截图所示, enter image description here

,与此同时,factoryname autoaudiosink工作。

最后,我收到了几条批评消息,

(gstreamer-test.exe:8540): GLib-GObject-CRITICAL **: g_object_set: assertion 'G_IS_OBJECT (object)' failed

(gstreamer-test.exe:8540): GStreamer-CRITICAL **: gst_bin_add: assertion 'GST_IS_ELEMENT (element)' failed

(gstreamer-test.exe:8540): GStreamer-CRITICAL **: gst_element_get_static_pad: assertion 'GST_IS_ELEMENT (element)' failed

(gstreamer-test.exe:8540): GStreamer-CRITICAL **: gst_object_unref: assertion 'object != NULL' failed

不知道我为什么得到他们...

注意:由于qt-gstreamer未被维护,因此我没有尝试过。

0 个答案:

没有答案