我希望有人可以帮助解决这个问题,过去两天一直在寻找解决方案。
简单描述一下这个问题:我正在尝试制作一个简单的 qt5.7 应用程序,它将流式传输 m3u8(使用 Qt Creator(社区))。但是当我尝试运行它时,我得到一个
Warning: "No decoder available for type 'application/x-hls'."
Error: "Your GStreamer installation is missing a plug-in."
“gst 检查 | grep hls” 返回:typefindfunctions:application/x-hls:m3u8
此时我不知道我会错过哪个插件,因为我已经浏览了完整的 GStreamer 插件列表并逐个添加了。 据我的搜索,有些人通过安装坏/丑陋的插件得到了修复。有人说QT5仍然使用gstreamer0.10,但新的linux版本使用1.0(此时已丢失)。我尝试设置一个标志来强制 GST_VERSION=1.0,但没有工作,或者我做错了什么(我使用了 qmake GST_VERSION=1.0 命令)。另外,我可以在 vlc 中播放视频。 我完全陷入困境,不知道该怎么办了。
应用程序代码:
import QtQuick 2.7
import QtQuick.Window 2.2
import QtMultimedia 5.7
Window {
visible: true
width: 640
height: 480
title: qsTr("Hello World")
Item {
width: 640
height: 480
MediaPlayer {
id: player
source: "http://playertest.longtailvideo.com/adaptive/wowzaid3/chunklist_w249832652.m3u8"
}
VideoOutput {
anchors.fill: parent
source: player
}
Component.onCompleted: {
player.play();
}
}
}
操作系统:
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=18
DISTRIB_CODENAME=sarah
DISTRIB_DESCRIPTION="Linux Mint 18 Sarah"
NAME="Linux Mint"
VERSION="18 (Sarah)"
ID=linuxmint
ID_LIKE=ubuntu
PRETTY_NAME="Linux Mint 18"
VERSION_ID="18"
HOME_URL="http://www.linuxmint.com/"
SUPPORT_URL="http://forums.linuxmint.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/linuxmint/"
UBUNTU_CODENAME=xenial
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.2-1~ubuntu1 amd64 GObject introspection data for the GStreamer library
ii gstreamer-qapt 3.0.2-0ubuntu1.1 amd64 GStreamer plugin to install codecs using QApt
ii gstreamer-tools 0.10.36-1.5ubuntu1 amd64 Tools for use with GStreamer
ii gstreamer0.10-alsa:amd64 0.10.36-2 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~gcc5.1 amd64 GStreamer plugin for getting the sink/source information from GConf
ii gstreamer0.10-gnomevfs:amd64 0.10.36-2 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-2 amd64 GStreamer plugins from the "base" set
ii gstreamer0.10-plugins-base:i386 0.10.36-2 i386 GStreamer plugins from the "base" set
ii gstreamer0.10-plugins-base-apps 0.10.36-2 amd64 GStreamer helper programs from the "base" set
ii gstreamer0.10-plugins-base-dbg:amd64 0.10.36-2 amd64 GStreamer plugins from the "base" set
ii gstreamer0.10-plugins-base-doc 0.10.36-2 all GStreamer documentation for plugins from the "base" set
ii gstreamer0.10-plugins-good:amd64 0.10.31-3+nmu4ubuntu2~gcc5.1 amd64 GStreamer plugins from the "good" set
ii gstreamer0.10-plugins-good:i386 0.10.31-3+nmu4ubuntu2~gcc5.1 i386 GStreamer plugins from the "good" set
ii gstreamer0.10-plugins-good-dbg:amd64 0.10.31-3+nmu4ubuntu2~gcc5.1 amd64 GStreamer plugins from the "good" set
ii gstreamer0.10-plugins-good-doc 0.10.31-3+nmu4ubuntu2~gcc5.1 all GStreamer documentation for plugins from the "good" set
ii gstreamer0.10-pulseaudio:amd64 0.10.31-3+nmu4ubuntu2~gcc5.1 amd64 GStreamer plugin for PulseAudio
ii gstreamer0.10-qapt 3.0.2-0ubuntu1.1 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-2 amd64 GStreamer plugins for X11 and Pango
ii gstreamer0.10-x:i386 0.10.36-2 i386 GStreamer plugins for X11 and Pango
ii gstreamer1.0-alsa:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugin for ALSA
ii gstreamer1.0-clutter 2.0.18-1 amd64 Clutter PLugin for GStreamer 1.0
ii gstreamer1.0-clutter-3.0 3.0.18-1 amd64 Clutter PLugin for GStreamer 1.0
ii gstreamer1.0-crystalhd 1:0.0~git20110715.fdd2f19-11build1 amd64 Crystal HD Video Decoder (GStreamer plugin)
ii gstreamer1.0-doc 1.8.2-1~ubuntu1 all GStreamer core documentation and manuals
ii gstreamer1.0-dvswitch 0.1.1-1 amd64 GStreamer plugin source from DVswitch
ii gstreamer1.0-espeak 0.4.0-1 amd64 GStreamer plugin for eSpeak speech synthesis
ii gstreamer1.0-fluendo-mp3:amd64 0.10.32.debian-1 amd64 Fluendo mp3 decoder GStreamer 1.0 plugin
ii gstreamer1.0-hybris:i386 1.8.2-1ubuntu0.1 i386 GStreamer plugins from hybris
ii gstreamer1.0-libav:amd64 1.8.2-1~ubuntu1 amd64 libav plugin for GStreamer
ii gstreamer1.0-libav-dbg:amd64 1.8.2-1~ubuntu1 amd64 libav plugin for GStreamer (debug symbols)
ii gstreamer1.0-nice:amd64 0.1.13-0ubuntu2 amd64 ICE library (GStreamer plugin)
ii gstreamer1.0-packagekit 0.8.17-4ubuntu6~gcc5.4ubuntu1.1 amd64 GStreamer plugin to install codecs using PackageKit
ii gstreamer1.0-plugins-bad:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "bad" set
ii gstreamer1.0-plugins-bad-dbg:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "bad" set (debug symbols)
ii gstreamer1.0-plugins-bad-doc 1.8.2-1ubuntu0.1 all GStreamer documentation for plugins from the "bad" set
ii gstreamer1.0-plugins-bad-faad:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer faad plugin from the "bad" set
ii gstreamer1.0-plugins-bad-videoparsers:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer videoparsers plugin from the "bad" set
ii gstreamer1.0-plugins-base:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-base-apps 1.8.2-1ubuntu0.1 amd64 GStreamer helper programs from the "base" set
ii gstreamer1.0-plugins-base-dbg:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "base" set
ii gstreamer1.0-plugins-base-doc 1.8.2-1ubuntu0.1 all GStreamer documentation for plugins from the "base" set
ii gstreamer1.0-plugins-good:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-good-dbg:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "good" set
ii gstreamer1.0-plugins-good-doc 1.8.2-1ubuntu0.1 all GStreamer documentation for plugins from the "good" set
ii gstreamer1.0-plugins-ugly:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "ugly" set
ii gstreamer1.0-plugins-ugly-amr:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "ugly" set
ii gstreamer1.0-plugins-ugly-dbg:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins from the "ugly" set (debug symbols)
ii gstreamer1.0-plugins-ugly-doc 1.8.2-1ubuntu0.1 all GStreamer documentation for plugins from the "ugly" set
ii gstreamer1.0-pocketsphinx:amd64 0.8.0+real5prealpha-1ubuntu2 amd64 Speech recognition tool - gstreamer plugin
ii gstreamer1.0-pulseaudio:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugin for PulseAudio
ii gstreamer1.0-tools 1.8.2-1~ubuntu1 amd64 Tools for use with GStreamer
ii gstreamer1.0-vaapi:amd64 1.8.2-1~ubuntu2 amd64 VA-API plugins for GStreamer
ii gstreamer1.0-vaapi-doc 1.8.2-1~ubuntu2 all GStreamer VA-API documentation and manuals
ii gstreamer1.0-x:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer plugins for X11 and Pango
ii libcanberra-gstreamer:amd64 0.30-2.1ubuntu1 amd64 GStreamer backend for libcanberra
ii libgstreamer-ocaml 0.2.0-2build2 amd64 OCaml interface to the gstreamer library -- runtime files
ii libgstreamer-ocaml-dev 0.2.0-2build2 amd64 OCaml interface to the gstreamer library -- development files
ii libgstreamer-plugins-bad1.0-0:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer development files for libraries from the "bad" set
ii libgstreamer-plugins-bad1.0-0:i386 1.8.2-1ubuntu0.1 i386 GStreamer development files for libraries from the "bad" set
ii libgstreamer-plugins-bad1.0-dev 1.8.2-1ubuntu0.1 amd64 GStreamer development files for libraries from the "bad" set
ii libgstreamer-plugins-base0.10-0:amd64 0.10.36-2 amd64 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base0.10-0:i386 0.10.36-2 i386 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base0.10-dev 0.10.36-2 amd64 GStreamer development files for libraries from the "base" set
ii libgstreamer-plugins-base1.0-0:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base1.0-0:i386 1.8.2-1ubuntu0.1 i386 GStreamer libraries from the "base" set
ii libgstreamer-plugins-base1.0-dev 1.8.2-1ubuntu0.1 amd64 GStreamer development files for libraries from the "base" set
ii libgstreamer-plugins-good1.0-0:amd64 1.8.2-1ubuntu0.1 amd64 GStreamer development files for libraries from the "good" set
ii libgstreamer-plugins-good1.0-dev 1.8.2-1ubuntu0.1 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:i386 0.10.36-1.5ubuntu1 i386 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.2-1~ubuntu1 amd64 Core GStreamer libraries and elements
ii libgstreamer1.0-0:i386 1.8.2-1~ubuntu1 i386 Core GStreamer libraries and elements
ii libgstreamer1.0-0-dbg:amd64 1.8.2-1~ubuntu1 amd64 Core GStreamer libraries and elements
ii libgstreamer1.0-dev 1.8.2-1~ubuntu1 amd64 GStreamer core development files
ii libgstreamermm-1.0-0v5:amd64 1.4.3+dfsg-5 amd64 C++ wrapper library for GStreamer (shared libraries)
ii libgstreamermm-1.0-dev:amd64 1.4.3+dfsg-5 amd64 C++ wrapper library for GStreamer (development files)
ii libqt5gstreamer-1.0-0:amd64 1.2.0-3 amd64 C++ bindings library for GStreamer with a Qt-style API - Qt 5 build
ii libqt5gstreamer-dev 1.2.0-3 amd64 Development headers for QtGStreamer - Qt 5 build
ii libqt5gstreamerquick-1.0-0:amd64 1.2.0-3 amd64 QtGStreamerQuick library - Qt 5 build
ii libqt5gstreamerui-1.0-0:amd64 1.2.0-3 amd64 QtGStreamerUi library - Qt 5 build
ii libqt5gstreamerutils-1.0-0:amd64 1.2.0-3 amd64 QtGStreamerUtils library - Qt 5 build
ii libqtgstreamer-1.0-0:amd64 1.2.0-3 amd64 C++ bindings library for GStreamer with a Qt-style API
ii libqtgstreamer-dev 1.2.0-3 amd64 Development headers for QtGStreamer
ii libqtgstreamerui-1.0-0:amd64 1.2.0-3 amd64 QtGStreamerUi library
ii libqtgstreamerutils-1.0-0:amd64 1.2.0-3 amd64 QtGStreamerUtils library
ii libreoffice-avmedia-backend-gstreamer 1:5.1.4-0ubuntu1 amd64 GStreamer backend for LibreOffice
ii liquidsoap-plugin-gstreamer 1.1.1-7.1 amd64 audio streaming language -- GStreamer plugin
ii phonon-backend-gstreamer:amd64 4:4.8.2-0ubuntu2 amd64 Phonon GStreamer 1.0 backend
ii phonon-backend-gstreamer-common:amd64 4:4.8.2-0ubuntu2 amd64 Phonon GStreamer 1.0.x backend icons
ii phonon4qt5-backend-gstreamer:amd64 4:4.8.2-0ubuntu2 amd64 Phonon Qt5 GStreamer 1.0 backend
ii qml-module-qtgstreamer:amd64 1.2.0-3 amd64 QML plugins from QtGStreamer - Qt 5 build
ii qt5gstreamer-dbg:amd64 1.2.0-3 amd64 Debug symbols for QtGStreamer - Qt 5 build
ii qtgstreamer-dbg:amd64 1.2.0-3 amd64 Debug symbols for QtGStreamer
ii qtgstreamer-declarative:amd64 1.2.0-3 amd64 QML plugins from QtGStreamer
ii qtgstreamer-plugins:amd64 1.2.0-3 amd64 GStreamer plugins from QtGStreamer
ii qtgstreamer-plugins-qt5:amd64 1.2.0-3 amd64 GStreamer plugins from QtGStreamer - Qt 5 build
我知道我回答“有点”晚了,但迟到总比不好
这里发生的情况是您的操作系统上缺少某些编解码器,因此我们需要安装它们才能播放视频/音频。
请注意,这仅适用于 Ubuntu 或基于 Ubuntu 的发行版,例如 Linux Mint 等。
要安装缺少的编解码器,您应该在终端上运行以下命令(或添加
ubuntu-restricted-extras
作为 .deb 文件的依赖项):
sudo apt install ubuntu-restricted-extras
缺失的元素名为
hlsdemux
,位于 gst-plugins-bad
。您可以使用 gst-inspect-0.10
或 gst-inspect-1.0
检查已安装的插件列表。与 grep 一起使用可以让您快速找出是否安装了它。
gst-inspect-1.0 | grep hlsdemux
(或 0.10,具体取决于您要使用的版本)
如果 QtMultimedia 确实使用 0.10,你应该会丢失
gstreamer0.10-plugins-bad
。请注意,0.10 已经过时并且多年来无人维护。 1.0正在积极开发中。您应该检查较新版本的 QtMultimedia 是否已升级到 1.0 版本并尝试使用它。
hls 插件位于 gst-plugins-bad 中。为确保确定,请检查 “gst-inspect-1.0 | grep hls” - 在您的发行版上,gst-inspect 可能是 gst-inspect-0.10 的符号链接。
如果有人使用 Fedora 遇到这个问题,这为我解决了它
sudo dnf install gstreamer1-plugins-* gstreamer1-plugin-openh264 gstreamer1-libav
不过它安装了很多插件,包括开发包,所以这是一个猎枪解决方案,而不是最优的。
Fedora Docs推荐的命令没有为我解决这个问题,缺少一些东西:sudo dnf install gstreamer1-plugins-{bad-\*,good-\*,base} gstreamer1-plugin-openh264 gstreamer1-libav
所以只需将规范替换为星号即可安装
gstreamer1-plugins
下的所有内容
要解决此问题,您需要安装必要的 GStreamer 插件。您可以按照以下步骤来安装这些插件:
sudo apt update
sudo apt install gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly
sudo apt install gstreamer1.0-libav
sudo apt install gstreamer1.0-plugins-base-apps gstreamer1.0-alsa gstreamer1.0-pulseaudio gstreamer1.0-tools