pyqt5+opencv实现视频播放
详细源码链接为:https://github.com/2500284064/pyqt5-opencv-video
基本原理是通过 VideoCapture 类读取视频源的每一帧数据,将数据转化为图片展示在QWidget中
(pyqt5网上资料太少,一开始查到用 vlc 做视频控件,走了很多弯路,后面发现 opencv 用来做视频控件更方便,而且opencv 的功能更加全面)
直接贴代码
import time
import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from cv2 import *
class VideoBox(QWidget):
VIDEO_TYPE_OFFLINE = 0
VIDEO_TYPE_REAL_TIME = 1
STATUS_INIT = 0
STATUS_PLAYING = 1
STATUS_PAUSE = 2
video_url = ""
def __init__(self, video_url="", video_type=VIDEO_TYPE_OFFLINE, auto_play=False):
QWidget.__init__(self)
self.video_url = video_url
self.video_type = video_type # 0: offline 1: realTime
self.auto_play = auto_play
self.status = self.STATUS_INIT # 0: init 1:playing 2: pause
# 组件展示
self.pictureLabel = QLabel()
init_image = QPixmap(