python+ffpyplayer制作的视频播放程序第八篇

上一篇我写了显示播放图片的QLabel控件,本篇写显示控件的图片数据来源,涉及到了ffpyplayer的使用,它的官方API文档可参阅ffpyplayer · PyPI。大致的逻辑是:在python中引入ffpyplayer的MediaPlayer(媒体播放器),通过MediaPlayer的实例读取视频文件,获取视频图片和音频数据,然后将图片数据展示在QLabel中,音频数据由MediaPlayer播放。因为涉及到从视频文件的I/O读取操作,所以需要将该部分代码放在线程中执行。关于python的多线程编程我在后面的篇章再介绍,因为截至目前因为GIL的机制,python还没有真正实现线程的并行。上代码,代码中的注释写的比较详细了,其中self.changePixmap.emit(convertToQtFormat),就是将获取的图片数据通过信号的方式发给QLabel.

from PySide6 import QtCore, QtGui
from PySide6.QtCore import QObject
import time
import cv2
from PIL import Image, ImageQt
import os
from ffpyplayer.player import MediaPlayer
from com.xx.exceptions.FileNotFound import FileNotFound
import com.xx.log as logs

# log的作用域在当前模块
log = logs.get_logger(__name__)

"""
定义一个线程,用于视频的播放
"""
class VideoPlayerRun(QObject):
    
    # 定义类变量。定义一个信号,用于发送图片文件,并将图片信息发送给用于显示的标签控件中。    
    changePixmap = QtCore.Signal(QtGui.QImage)
        
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wzffzw

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值