پرشان مظاهری
1 سال پیش توسط پرشان مظاهری مطرح شد
3 پاسخ

چگونه میتوانم در tkinter ویدیو قرار دهم

روش قرار دادن ویدئو در tkinter ؟


ثبت پرسش جدید
طراح چی
تخصص : برنامه نویسی
@Tarrahchi 1 سال پیش مطرح شد
0

برای قرار دادن ویدئو در Tkinter شما می توانید از کتابخانه‌ی moviepy استفاده کنید. ابتدا این کتابخانه را با استفاده از دستور زیر نصب کنید:

pip install moviepy

سپس با استفاده از متد ImageClip کلاس moviepy.editor, فایل ویدئویی خود را به عنوان یک کلیپ تعریف کنید. به عنوان مثال، فرض کنید که ویدئوی شما با نام "video.mp4" در پوشه فعلی قرار دارد، می توانید کد زیر را استفاده کنید:

from moviepy.editor import *
clip = VideoFileClip("video.mp4")

سپس با استفاده از کلاس tkinter.Canvas، یک کانوس تعریف کرده و سپس با استفاده از متد create_window آن را به یک ویدئو پلیر که با استفاده از کلاس moviepy.video.VideoClip ساخته شده است، متصل کنید. برای این کار می توانید کد زیر را استفاده کنید:

import tkinter as tk
from moviepy.editor import *

class VideoPlayer(tk.Frame):
    def __init__(self, master=None, filename=None):
        super().__init__(master)
        self.master = master

        # ساخت کلیپ
        self.clip = VideoFileClip(filename)

        # ساخت کانوس
        self.canvas = tk.Canvas(self.master, width=self.clip.size[0], height=self.clip.size[1])
        self.canvas.pack()

        # اضافه کردن ویدئو پلیر به کانوس
        self.player = self.clip.preview(fps=30)
        self.window = self.canvas.create_window((0, 0), window=self.player, anchor="nw")

        # تغییر اندازه ویدئو پلیر به اندازه کانوس
        self.player.bind("<Configure>", self.resize_player)

        self.pack()

    def resize_player(self, event):
        self.canvas.itemconfig(self.window, width=event.width, height=event.height)

root = tk.Tk()
app = VideoPlayer(root, "video.mp4")
app.mainloop()

در این کد، یک کلاس به نام VideoPlayer تعریف شده است که از کلاس tkinter.Frame ارث بری کرده است. در تابع init ابتدا کلیپ ویدئو با استفاده از فایل ویدئویی موجود در مسیر فایل filename تعریف شده است. سپس اندازه اش متناسب شده است.


مهدی مشایخی
تخصص : برنامه نویس پایتون - ماشین لرن...
@MahdiMashayekhi 1 سال پیش مطرح شد
0

سلام روز بخیر
این لینک رو بررسی کنی کمکت میکنه:
https://stackoverflow.com/questions/50922175/to-show-video-streaming-inside-frame-in-tkinter

اگر نتوستی میتونی مجدد سوال بپرسی تا کمکت کنم.


طراح چی
تخصص : برنامه نویسی
@Tarrahchi 1 سال پیش مطرح شد
0

برای قرار دادن ویدئو در Tkinter شما می توانید از کتابخانه‌ی moviepy استفاده کنید. ابتدا این کتابخانه را با استفاده از دستور زیر نصب کنید:

pip install moviepy

سپس با استفاده از متد ImageClip کلاس moviepy.editor, فایل ویدئویی خود را به عنوان یک کلیپ تعریف کنید. به عنوان مثال، فرض کنید که ویدئوی شما با نام "video.mp4" در پوشه فعلی قرار دارد، می توانید کد زیر را استفاده کنید:

from moviepy.editor import *
clip = VideoFileClip("video.mp4")

سپس با استفاده از کلاس tkinter.Canvas، یک کانوس تعریف کرده و سپس با استفاده از متد create_window آن را به یک ویدئو پلیر که با استفاده از کلاس moviepy.video.VideoClip ساخته شده است، متصل کنید. برای این کار می توانید کد زیر را استفاده کنید:

import tkinter as tk
from moviepy.editor import *

class VideoPlayer(tk.Frame):
    def __init__(self, master=None, filename=None):
        super().__init__(master)
        self.master = master

        # ساخت کلیپ
        self.clip = VideoFileClip(filename)

        # ساخت کانوس
        self.canvas = tk.Canvas(self.master, width=self.clip.size[0], height=self.clip.size[1])
        self.canvas.pack()

        # اضافه کردن ویدئو پلیر به کانوس
        self.player = self.clip.preview(fps=30)
        self.window = self.canvas.create_window((0, 0), window=self.player, anchor="nw")

        # تغییر اندازه ویدئو پلیر به اندازه کانوس
        self.player.bind("<Configure>", self.resize_player)

        self.pack()

    def resize_player(self, event):
        self.canvas.itemconfig(self.window, width=event.width, height=event.height)

root = tk.Tk()
app = VideoPlayer(root, "video.mp4")
app.mainloop()

در این کد، یک کلاس به نام VideoPlayer تعریف شده است که از کلاس tkinter.Frame ارث بری کرده است. در تابع init ابتدا کلیپ ویدئو با استفاده از فایل ویدئویی موجود در مسیر فایل filename تعریف شده است. سپس اندازه اش متناسب شده است.


پرشان مظاهری
تخصص : python programmer
@Parshanm89 1 سال پیش مطرح شد
0

سلام ممنونم کار کرد فقط با تابع امکان انجام این کار وجود داره ممنون میشم


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام