PyQt5 QMediaPlayer播放不了视频

Posted 爱听音乐的boy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PyQt5 QMediaPlayer播放不了视频相关的知识,希望对你有一定的参考价值。

代码:

编辑器 pycharm:

from PyQt5.QtWidgets import QApplication, QWidget, QFileDialog
from PyQt5.QtMultimediaWidgets import QVideoWidget
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
import sys

app = QApplication(sys.argv)

win = QWidget()
win.setWindowTitle("视频播放 实例")
win.resize(800, 500)

videoWidget = QVideoWidget(win) #视频控件
videoWidget.resize(win.width(), win.height())

player = QMediaPlayer()
player.setVideoOutput(videoWidget)

url = QFileDialog.getOpenFileUrl()[0] #选择本地视频
player.setMedia(QMediaContent(url))
player.play() #播放视频

win.show()
sys.exit(app.exec_())

QMediaPlayer 播放不了视频:


当我选择 avi.avi 视频后,发现可以播放声音,但是没有视频画面!!!
当我选择 mp4.mp4 视频后,发现即没有声音也没有画面。

解决:

在电脑上需要安装一个 视频 解码器,解码器有如下:

解码器:
  LAV Filters
  K-Lite Codec Pack Basic

LAV Filters下载地址:

http://forum.doom9.org/showthread.php?t=156191

https://files.1f0.de/lavf/LAVFilters-0.73.1.exe

K-Lite Codec Pack Basic:

https://www.codecguide.com/download_k-lite_codec_pack_basic.htm

笔者选择的是 K-Lite Codec Pack Basic ,一直默认安装即可。

安装完 K-Lite Codec Pack Basic 后,关闭pycharm,重新打开pycharm。

再次运行程序:

支持格式:

安装 K-Lite Codec Pack Basic 解码器后,支持的格式有如下:
    .gif   .avi   .mp4   .wmv 

笔者已经测试。


----结束----
仅学习。

使用PyQt5播放视频并添加字幕——最简单示例

参考链接:C版本

from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QLabel, QGraphicsTextItem, QGraphicsScene, QGraphicsView
from PyQt5.QtMultimedia import QMediaPlaylist, QMediaPlayer, QMediaContent
from PyQt5.QtMultimediaWidgets import QGraphicsVideoItem
from PyQt5.Qt import QUrl, QVideoWidget, QSizeF
from PyQt5.QtGui import QKeyEvent
from PyQt5.QtCore import Qt


class Video(QMainWindow):

    def __init__(self):
        super(Video, self).__init__()
        self.resize(1920, 1080)
        self._item = QGraphicsVideoItem()
        self._textItem = QGraphicsTextItem()
        self._view = QGraphicsView()
        self._scene = QGraphicsScene()
        self._view.resize(1920, 1080)
        self._view.setScene(self._scene)
        self._scene.addItem(self._item)
        self._scene.addItem(self._textItem)
        self._textItem.setPlainText('SRT TEXT')
        self._textItem.setDefaultTextColor(Qt.red)
        font = self._textItem.font()
        font.setPixelSize(50)
        self._textItem.setFont(font)
        self._view.show()
        self._item.setSize(QSizeF(1920, 1080))
        self._player = QMediaPlayer(self)
        self._player.setMedia(QMediaContent(
            QUrl.fromLocalFile('视频路径‘)))
        self._player.setVideoOutput(self._item)
        self._player.play()
        self.setCentralWidget(self._view)


if __name__ == '__main__':
    import sys

    app = QApplication(sys.argv)
    test = Video()
    test.show()
    sys.exit(app.exec_())

以上是关于PyQt5 QMediaPlayer播放不了视频的主要内容,如果未能解决你的问题,请参考以下文章

基于pyqt5的QMediaPlayer实现视频播放器(拨动进度条,音量,更换播放模式,加入多个播放文件)

使用PyQt5播放视频并添加字幕——最简单示例

解决PyQt5 QMediaPlayer播放mp3后占用的问题

PyQt5:QMediaPlayer 无法从 QBuffer 重放音频

PyQt5 QMediaplayer找不到服务错误

无法使用 QMediaPlayer 播放某些视频