如何使用pyqt5从内存读取视频数据

2024-09-27 20:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个加密的视频文件,我想把这个文件解密到内存中,然后用这个数据播放视频。qt需要一个好的播放器名吗?在

这是我的密码

#!/usr/bin/env python

from PyQt5.QtCore import QFile, QFileInfo, QIODevice, QUrl, QDataStream
from PyQt5.QtWidgets import QApplication
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtMultimediaWidgets import QVideoWidget

if __name__ == '__main__':

import sys
app = QApplication(sys.argv)
player = QMediaPlayer()

file = QFile('mymusic.avi')
stream = QDataStream(file)
# this is where i want read form stream? how can i read from stream?
player.setMedia(QMediaContent(QUrl.fromLocalFile('mymusic.avi')))

videoWidget = QVideoWidget()
player.setVideoOutput(videoWidget)
videoWidget.show()

player.play()
sys.exit(app.exec_())

看,param是文件名,但我想从二进制数据中读取,我该怎么做?在


Tags: 数据fromimportstreamsyspyqt5playerqapplication
1条回答
网友
1楼 · 发布于 2024-09-27 20:18:42

我已经解决了这个问题,解决方法如下代码所示

#!/usr/bin/env python

from PyQt5.QtCore import QFile, QFileInfo, QIODevice, QUrl, QDataStream, QBuffer, QByteArray
from PyQt5.QtWidgets import QApplication
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent
from PyQt5.QtMultimediaWidgets import QVideoWidget

if __name__ == '__main__':

import sys
app = QApplication(sys.argv)
player = QMediaPlayer()

file = QFile('mymusic-encrypt.avi')

isOpen = file.open(QIODevice.ReadOnly)

buffer = QBuffer()
buffer.open(QIODevice.ReadWrite)

player.setMedia(QMediaContent(), buffer)

if isOpen:
    while not file.atEnd():
        temp = file.readLine()
        # temp = QByteArray.fromBase64(temp)
        buffer.write(temp)

videoWidget = QVideoWidget()
player.setVideoOutput(videoWidget)
videoWidget.show()

player.play()
sys.exit(app.exec_())

我需要仔细阅读api,谢谢大家。在

相关问题 更多 >

    热门问题