python 视频播放器播放很慢
我自己做了一个视频播放器,但是播放时的时候播放的很慢,尝试播放了很多视频,都播放的很慢,不知道是怎么回事,知道的请帮我解决一下。
代码:
import tkinter as tk
from tkinter import filedialog
from PIL import Image, ImageTk
from cv2 import cv2
def play_func():
moviePath = filedialog.askopenfilename()
pBtn.place_forget()
movie = cv2.VideoCapture(moviePath)
while movie.isOpened():
ret, readyFrame = movie.read()
if ret:
movieFrame = cv2.cvtColor(readyFrame, cv2.COLOR_BGR2RGBA)
newImage = Image.fromarray(movieFrame).resize((1080, 720))
newCover = ImageTk.PhotoImage(image=newImage)
videoLable.configure(image=newCover)
videoLable.image = newCover
root.update_idletasks()
root.update()
root = tk.Tk()
root.title("Video Player")
root.geometry("1080x720")
root["bg"] = "#333333"
root.iconbitmap("./img/play.ico")
movieImage = Image.open("./img/movie.jpg")
cover = ImageTk.PhotoImage(image=movieImage)
videoLable = tk.Label(root, width=1080, height=720, bd=0, image=cover)
videoLable.place(x=0, y=0)
pImg = Image.open("./img/play.png").resize((64, 64))
pImgTk = ImageTk.PhotoImage(image=pImg)
pBtn = tk.Button(root, image=pImgTk, cursor='hand2', command=play_func)
pBtn.place(x=508, y=328)
pBar = tk.Scale(root, from_=0, to=90, length=1080, orient=tk.HORIZONTAL,
resolution=0.1, showvalue=0, bd=0, cursor="hand2")
pBar.place(x=0, y=700)
root.mainloop()
谢谢楼主代码,我去试试 这个牛逼啊谢谢大神 按正常的播放器,都是会有一个提前解析缓存的 有这么牛逼 用你的代码替换掉图片后播放MPG正常呀,没觉得慢呀?你电脑配置可能不高吧 不错不错,好想法{:1_918:} 你这个如何打包成软件?EXE的那种程序 是不是获取每一帧的图片获取的很慢,所以播放的就很慢呢?
可不可以用多线程每一次多获取视频的帧呢?
这样要怎么弄?{:17_1080:}
页:
[1]