AttributeError: объект FilterableStream не имеет атрибута input – ffmpeg-pythonPython

Программы на Python
Anonymous
AttributeError: объект FilterableStream не имеет атрибута input – ffmpeg-python

Сообщение Anonymous »

Я начинающий программист и изучаю язык Python.
Я пытаюсь разработать графическое приложение (используя библиотеки tkinter и ffmpeg-python), которое преобразует файл изображения вместе со звуком в видео. длина звука при отображении изображения. К сожалению, всякий раз, когда я пытаюсь запустить программу, я постоянно сталкиваюсь с ошибками.
Сначала это было связано с установкой библиотеки ffmpeg в диспетчере пакетов pip вместо ffmpeg-python. Я удалил предыдущий пакет, установил правильный и убедился, что другие пакеты не вызывают проблем. Используя такой короткий скрипт, библиотека работала без сбоев:

Код: Выделить всё

'''
The Error causing Statement
import ffmpeg
(
ffmpeg.input("something.mp3")
.output("output.wav")
.run()
)
'''
# When I tried to use the ffmpeg library in a graphics program within a function, unfortunately I was not able to get it to work

import tkinter as tk
from tkinter import filedialog
from tkinter import ttk

def select_image():
file_path = filedialog.askopenfilename(title="Select a file", filetypes=[("image files","*.jpg;*.png;*.gif;*.jfif;")])
print("Selected file:", file_path)

def select_audio():
file_path = filedialog.askopenfilename(title="Select a file", filetypes=[("audio files","*.mp3;*.wav;*.ogg;*.flac;*.m4a;*.acc;")])
print("Selected file:", file_path)

def create_video(image_file, audio_file, output_format):
import ffmpeg
(
ffmpeg.input(image_file, loop=1)
.input(audio_file)
.output("output" + output_format)
.run()
)

def choose_directory():
directory_path = filedialog.askdirectory(title="Select directory")
print("Selected directory:", directory_path)

root = tk.Tk()

root.title("Audio To Video Converter")
root.geometry("500x700")

title = tk.Label(root, text="Audio To Video Converter", font=('Arial', 28))
title.pack(padx=20, pady=20)

selectImage_button = tk.Button(root, text="Select image", command=select_image, height=3, width=50)
selectImage_button.pack(pady=10, padx=20)
selectAudio_button = tk.Button(root, text="Select audio", command=select_audio, height=3, width=50)
selectAudio_button.pack(pady=10, padx=20)

label1 = tk.Label(root, text="Output video format", font=('Arial', 16))
label1.pack(padx=20, pady=10)

outputFormat = ttk.Combobox(root, width=55)
outputFormat['values'] = ('.avi', '.mkv', '.mp4', '.webm')
outputFormat['state'] = 'readonly'
outputFormat.pack(pady=5, padx=20)

label2 = tk.Label(root, text="Output directory", font=('Arial', 16))
label2.pack(padx=20, pady=10)

outputDirectory_button = tk.Button(root, text="Select directory", command=choose_directory, height=3, width=50)
outputDirectory_button.pack(pady=5, padx=60)

convert_button = tk.Button(root, text="Convert", height=3, width=50, command=create_video(selectImage_button, selectAudio_button, outputFormat['values'] ))

root.mainloop()
Это единственное, что отображается на консоли после попытки запуска

Код: Выделить всё

Traceback (most recent call last):
File "c:\Users\Admin\Documents\konwerter\konwerter.py", line 56, in 
convert_button = tk.Button(root, text="Convert", height=3, width=50, command=create_video(selectImage_button, selectAudio_button, outputFormat['values'] ))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Admin\Documents\konwerter\konwerter.py", line 17, in create_video
.input(audio_file)
^^^^^
AttributeError: 'FilterableStream' object has no attribute 'input'
Я провел небольшое исследование и не нашел никакой информации об этой ошибке, за исключением того, что она может быть связана с установкой неправильных библиотек. Это мой список установленных библиотек в диспетчере пакетов pip:

Код: Выделить всё

colored           2.2.4 customtkinter     5.2.2 darkdetect        0.8.0 ffmpeg-python     0.2.0 future            1.0.0 Gooey             1.0.8.1 packaging         24.1 pillow            10.4.0 pip               24.2 psutil            6.0.0 pyee              12.0.0 pygtrie           2.5.0 six               1.16.0 tkinterdnd2       0.4.2 typing_extensions 4.12.2 wxPython          4.2.2
Возможно, решение проблемы простое, но я новичок и во многих вещах не разбираюсь. Буду очень благодарен за ответ!

Подробнее здесь: https://stackoverflow.com/questions/790 ... fmpeg-pyth

Вернуться в «Python»