无法播放视频Qt5多媒体ubuntu 16.04

时间:2017-12-10 11:56:08

标签: c++ qt ubuntu video qtmultimedia

我正在尝试使用QMediaPlayer类播放视频,但不断收到此错误 -

`GLib-GObject-WARNING **: cannot register existing type 'GstObject'

GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed

 GLib-GObject-CRITICAL **: g_type_register_static: assertion 'parent_type > 0' failed

GLib-CRITICAL **: g_once_init_leave: assertion 'result != 0' failed
 GStreamer-CRITICAL **: gst_pad_get_negotiated_caps: assertion 'GST_IS_PAD (pad)' failed`

使用Qt 5.7,使用ubuntu 16.04。使用安装向导安装了qt(即没有自己构建任何东西),这是我为Gstreamer提供的软件包 -

ii  gir1.2-gstreamer-0.10                       0.10.36-1.5ubuntu1                           amd64        Description: GObject introspection data for the GStreamer library
ii  gir1.2-gstreamer-1.0                        1.8.3-1~ubuntu0.1                            amd64        GObject introspection data for the GStreamer library
ii  gstreamer-qapt                              3.0.2-0ubuntu1.2                             amd64        GStreamer plugin to install codecs using QApt
ii  gstreamer0.10-alsa:amd64                    0.10.36-2ubuntu0.1                           amd64        GStreamer plugin for ALSA
ii  gstreamer0.10-doc                           0.10.36-1.5ubuntu1                           all          GStreamer core documentation and manuals
ii  gstreamer0.10-ffmpeg:amd64                  0.10.13-5ubuntu1~wily                        amd64        FFmpeg plugin for GStreamer
ii  gstreamer0.10-ffmpeg-dbg:amd64              0.10.13-5ubuntu1~wily                        amd64        FFmpeg plugin for GStreamer (debug symbols)
ii  gstreamer0.10-gconf:amd64                   0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugin for getting the sink/source information from GConf
ii  gstreamer0.10-gnomevfs:amd64                0.10.36-2ubuntu0.1                           amd64        GStreamer plugin for GnomeVFS
ii  gstreamer0.10-nice:amd64                    0.1.13-0ubuntu2                              amd64        ICE library (GStreamer 0.10 plugin)
ii  gstreamer0.10-plugins-base:amd64            0.10.36-2ubuntu0.1                           amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-apps             0.10.36-2ubuntu0.1                           amd64        GStreamer helper programs from the "base" set
ii  gstreamer0.10-plugins-base-dbg:amd64        0.10.36-2ubuntu0.1                           amd64        GStreamer plugins from the "base" set
ii  gstreamer0.10-plugins-base-doc              0.10.36-2ubuntu0.1                           all          GStreamer documentation for plugins from the "base" set
ii  gstreamer0.10-plugins-good:amd64            0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-good-dbg:amd64        0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugins from the "good" set
ii  gstreamer0.10-plugins-good-doc              0.10.31-3+nmu4ubuntu2.16.04.3                all          GStreamer documentation for plugins from the "good" set
ii  gstreamer0.10-pulseaudio:amd64              0.10.31-3+nmu4ubuntu2.16.04.3                amd64        GStreamer plugin for PulseAudio
ii  gstreamer0.10-qapt                          3.0.2-0ubuntu1.2                             all          transitional dummy package
ii  gstreamer0.10-tools                         0.10.36-1.5ubuntu1                           amd64        Tools for use with GStreamer
ii  gstreamer0.10-x:amd64                       0.10.36-2ubuntu0.1                           amd64        GStreamer plugins for X11 and Pango
ii  gstreamer1.0-alsa:amd64                     1.8.3-1ubuntu0.2                             amd64        GStreamer plugin for ALSA
ii  gstreamer1.0-clutter-3.0                    3.0.18-1                                     amd64        Clutter PLugin for GStreamer 1.0
ii  gstreamer1.0-fluendo-mp3:amd64              0.10.32.debian-1                             amd64        Fluendo mp3 decoder GStreamer 1.0 plugin
ii  gstreamer1.0-libav:amd64                    1.8.3-1ubuntu0.2                             amd64        libav plugin for GStreamer
ii  gstreamer1.0-plugins-bad:amd64              1.8.3-1ubuntu0.2                             amd64        GStreamer plugins from the "bad" set
ii  gstreamer1.0-plugins-bad-faad:amd64         1.8.3-1ubuntu0.2                             amd64        GStreamer faad plugin from the "bad" set
ii  gstreamer1.0-plugins-bad-videoparsers:amd64 1.8.3-1ubuntu0.2                             amd64        GStreamer videoparsers plugin from the "bad" set
ii  gstreamer1.0-plugins-base:amd64             1.8.3-1ubuntu0.2                             amd64        GStreamer plugins from the "base" set
ii  gstreamer1.0-plugins-base-apps              1.8.3-1ubuntu0.2                             amd64        GStreamer helper programs from the "base" set
ii  gstreamer1.0-plugins-good:amd64             1.8.3-1ubuntu0.4                             amd64        GStreamer plugins from the "good" set
ii  gstreamer1.0-plugins-ugly:amd64             1.8.3-1ubuntu0.1                             amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-plugins-ugly-amr:amd64         1.8.3-1ubuntu0.1                             amd64        GStreamer plugins from the "ugly" set
ii  gstreamer1.0-pulseaudio:amd64               1.8.3-1ubuntu0.4                             amd64        GStreamer plugin for PulseAudio
ii  gstreamer1.0-tools                          1.8.3-1~ubuntu0.1                            amd64        Tools for use with GStreamer
ii  gstreamer1.0-x:amd64                        1.8.3-1ubuntu0.2                             amd64        GStreamer plugins for X11 and Pango
ii  libgstreamer-plugins-bad1.0-0:amd64         1.8.3-1ubuntu0.2                             amd64        GStreamer development files for libraries from the "bad" set
ii  libgstreamer-plugins-base0.10-0:amd64       0.10.36-2ubuntu0.1                           amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-base1.0-0:amd64        1.8.3-1ubuntu0.2                             amd64        GStreamer libraries from the "base" set
ii  libgstreamer-plugins-good1.0-0:amd64        1.8.3-1ubuntu0.4                             amd64        GStreamer development files for libraries from the "good" set
ii  libgstreamer0.10-0:amd64                    0.10.36-1.5ubuntu1                           amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-0-dbg:amd64                0.10.36-1.5ubuntu1                           amd64        Core GStreamer libraries and elements
ii  libgstreamer0.10-dev                        0.10.36-1.5ubuntu1                           amd64        GStreamer core development files
ii  libgstreamer1.0-0:amd64                     1.8.3-1~ubuntu0.1                            amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-0-dbg:amd64                 1.8.3-1~ubuntu0.1                            amd64        Core GStreamer libraries and elements
ii  libgstreamer1.0-dev                         1.8.3-1~ubuntu0.1                            amd64        GStreamer core development files
ii  libreoffice-avmedia-backend-gstreamer       1:5.1.6~rc2-0ubuntu1~xenial2                 amd64        GStreamer backend for LibreOffice
ii  qtgstreamer-plugins-qt5:amd64               1.2.0-3                                      amd64        GStreamer plugins from QtGStreamer - Qt 5 build

此外,运行gst-launch -v playbin2 uri=file://U1_Test_Test030.avi失败,

Setting pipeline to PAUSED ...
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: ring-buffer-max-size = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-size = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: buffer-duration = -1
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: use-buffering = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: download = FALSE
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: uri = "file://U1_Test_Test030.avi"
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: connection-speed = 0
/GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0: source = (GstGioSrc) source
ERROR: Pipeline doesn't want to pause.
ERROR: from element /GstURIDecodeBin:uridecodebin0/GstGioSrc:source: Could not open resource for reading.
Additional debug info:
gstgiosrc.c(324): gst_gio_src_get_stream (): /GstPlayBin2:playbin20/GstURIDecodeBin:uridecodebin0/GstGioSrc:source:
Could not open location file://U1_Test_Test030.avi for reading: Operation not supported
Setting pipeline to NULL ...
Freeing pipeline ...

gst-launch-0.10版本0.10.36 GStreamer 0.10.36 https://launchpad.net/distros/ubuntu/+source/gstreamer0.10

使用GST_DEBUG = 4时的

日志输出(此链接https://pastebin.com/742JBtba)[https://pastebin.com/742JBtba]

3 个答案:

答案 0 :(得分:0)

您使用的是qt5-styleplugins吗? 如果您尝试修改/etc/environment 将变量覆盖为:
QT_STYLE_OVERRIDE=gtk2

答案 1 :(得分:0)

处理编解码器和Qt真的很痛苦,所以我建议你使用这个库,它会让你的日子更轻松!

VLC-Qt

答案 2 :(得分:0)

升级到Qt 5.10解决了这个问题。