首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python的交互式视频

使用Python的交互式视频
EN

Stack Overflow用户
提问于 2017-11-09 14:55:43
回答 2查看 1.1K关注 0票数 0

我想知道是否可以用Python3.6制作互动视频?我研究了使用python-gstreamer将视频输入到Tkinter中的方法,但是我不能让它工作。

因此,谁能建议一种方法并解释如何让视频在Python中播放?因此,也许可以有一个Tkinter窗口,这个视频可以显示在这个帧中?

如果Python不可行,欢迎任何其他想法。

谢谢

EN

回答 2

Stack Overflow用户

发布于 2017-11-09 15:10:38

下面的代码创建一个Tkinter窗口并在其中显示视频。如果您还没有所需的库,则需要安装一些依赖项。

代码语言:javascript
复制
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()
票数 0
EN

Stack Overflow用户

发布于 2019-05-09 01:11:55

您可以使用jupyter笔记本中的Video小部件来尝试:

代码语言:javascript
复制
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)

另请参阅此处:https://github.com/QuantStack/quantstack-talks/blob/master/2018-11-14-PyParis-widgets/notebooks/1.ipywidgets.ipynb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47195688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档