Tkinter中的视频输出?

3 投票
2 回答
3444 浏览
提问于 2025-04-16 14:01

我之前发过一个类似的问题,但没有人回答,所以我想问一个更普遍的问题:

有没有人知道怎么在Python的Tkinter窗口里输出真正的视频,而不是快速变化的一系列图片?

2 个回答

0

现在,Python的tkinter可以在界面中播放视频,而且还有声音。你可以看看这个模块:tkintervideo。这个功能是通过很多模块的配合实现的,所以现在它支持快进、快退和寻找特定位置的选项。

在这里输入图片描述

如果出现任何错误,可以把问题反馈到这个项目的GitHub问题页面上。

from tkintervideo import player
from tkintervideo.tools import Controls
import tkinter as tk
from tkinter import ttk
import sv_ttk
import time

class App(tk.Tk):
    def __init__(self,*args,**kwargs):
        super().__init__(*args,**kwargs)
        sv_ttk.set_theme('dark')
        self.m_widget = player.Player(self,height=200,width=300)

        self.rowconfigure(0,weight=1)
        self.rowconfigure(1,weight=0)
        self.columnconfigure(0,weight=1)

        self.m_widget.grid(column=0,row=0,sticky=tk.NSEW,padx=5,pady=5)
        self.m_widget.load('output.avi')

        self.controls = Controls(self,self.m_widget)
        self.m_widget.bind("<<Duration>>",self.controls.update_scale)
        self.controls.grid(column=0,row=1,sticky=tk.NSEW,padx=10,pady=10)
myApp = App()
myApp.mainloop()
3

你可能需要像TkVideo或Quicktime这样的扩展来实现这个功能,目前不太确定有没有适合Python的封装可以使用。https://github.com/patthoyts/tkvideo

撰写回答