无法在 QML 中播放视频

Posted

技术标签:

【中文标题】无法在 QML 中播放视频【英文标题】:Unable to play video in QML 【发布时间】:2017-05-18 10:55:25 【问题描述】:

我正在使用 Qt 5.8 开发 ubuntu 14.04,并尝试使用 Qt 多媒体模块在我的应用程序中播放视频。我把“QT +=快速多媒体”放在“.pro”中。

ContentVideo.qml

import QtQuick 2.1
import QtMultimedia 5.0

Rectangle 
    width: 400
    height: 400
    color:"black"

    MediaPlayer 
        id: mediaPlayer
        autoPlay: true
        autoLoad: true
        source:"/home/macos/Desktop/FroggerHighway.mp4"
    

    VideoOutput 
        id:videoOutput
        source:mediaPlayer
        anchors.fill: parent
    

ma​​in.qml

import QtQuick 2.1
import QtQuick.Window 2.1

Window 
    id: root
    color: "black"
    width: 400
    height: 400
    visible: true
    ContentVideo 
        anchors.fill: parent
    

我的视频没有运行,我得到黑屏,没有任何错误。 QT QML 示例视频正在我的电脑上运行。任何帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

MediaPlayer.source 是一个 URI,我认为您指定的值不是有效的 URI。尝试在 mp4 文件的路径前添加“file://”。

【讨论】:

非常感谢您的回应【参考方案2】:

我刚刚遇到了和你一样的问题,看来QtMultimedia会在运行时从系统中的gstreamer中寻找解码器,所以我安装了视频编解码器包:

sudo apt-get install gstreamer1.0-libav gstreamer1.0-vaapi

那么qml视频播放器现在可以正常工作了

【讨论】:

【参考方案3】:

如果 QML 视频示例正常工作,则可能是由于缺少编解码器来对视频进行编码。检查您是否拥有所有Multimedia Dependencies。我的猜测是,提供的视频样本是以开放格式编码的,您的发行版默认提供支持。

【讨论】:

【参考方案4】:

QT+= multimedia 添加到您的.pro 文件中。

【讨论】:

【参考方案5】:

我在 Arch 和 Debian 上遇到了同样的问题。安装以下软件包后,一切正常。

ARCH:

额外/gstreamer aur/gstreamer0.10 额外/gst-plugins-base-libs 额外/gst-plugins-good 额外/gst-libav 额外/qt5-工具

使用yay安装:

yay -S gstreamer gstreamer0.10 gst-plugins-base-libs gst-plugins-good gst-libav qt5-tools

Debian:

libqt5multimedia5-plugins gstreamer1.0-plugins-good gstreamer1.0-libav libqt5multimediagsttools5

apt安装:

apt install libqt5multimedia5-plugins 

【讨论】:

以上是关于无法在 QML 中播放视频的主要内容,如果未能解决你的问题,请参考以下文章

如何在 QML 中播放目录中的视频

在 Windows 上以 QML 播放 RTSP 视频

如何使用 video 5.12 qt qml 播放视频?

Qt Quick 多媒体 - 播放音乐和视频

Qt on android 播放视频的实现

微信中有些视频无法播放怎么办?