我只是想知道是否可以在Python 3.6中制作交互式视频?我查看了使用python-gstreamer将视频输入Tkinter的选项,但是我无法让它工作。
那么有人可以建议一种方法并解释如何在Python中播放视频吗?那么也许可能有一个Tkinter窗口,这个视频可以显示在这个框架中吗?
如果Python不可能,欢迎任何其他想法。
谢谢
答案 0 :(得分:0)
以下代码生成Tkinter窗口并在其中显示视频。如果您还没有所需的库,则需要安装一些依赖项。
import tkinter as tk, threading
import imageio
from PIL import Image, ImageTk
name = "video.mp4" # video file path
video = imageio.get_reader(name)
def stream(label):
for data in video.iter_data():
frame_image = ImageTk.PhotoImage(Image.fromarray(data))
label.config(image=frame_image)
label.image = frame_image
if __name__ == "__main__":
root = tk.Tk()
video_label = tk.Label(root)
video_label.pack()
thread = threading.Thread(target=stream, args=(video_label,))
thread.daemon = 1
thread.start()
root.mainloop()
答案 1 :(得分:0)
您可以在jupyter笔记本中的“视频”小部件中尝试使用此方法:
from ipywidgets import Video, Image
from IPython.display import display
from ipywidgets import Checkbox
fileA= 'videoA.mp4'
fileB= 'videoB.mp4'
video = Video.from_file(fileB)
top_toggle = Checkbox(description='Change Video')
def video_loader(filename):
with open(filename, 'rb') as f:
video.value = f.read()
def video_change(button):
if button['new']:
video_loader(fileA)
else:
video_loader(fileB)
top_toggle.observe(video_change, names='value')
display(top_toggle)
display(video)