@Advantes

Скрипт выбивает 2 ошибки,в чем может быть проблема?

Нашел готовый скрипт,решил его запустит,и вылетает ошибки.Подскажите пож-та как это исправить)
Traceback (most recent call last):
  File "C:\Users\home\PycharmProjects\pythonProject4\main.py", line 43, in <module>
    img = random.choice(images).set_duration(3).resize(1.1)
          ^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\home\AppData\Local\Programs\Python\Python311\Lib\random.py", line 370, in choice
    raise IndexError('Cannot choose from an empty sequence')
IndexError: Cannot choose from an empty sequence


Сам код
import moviepy
from moviepy.editor import *
import random
from pathlib import Path
import string

def create_file_list(folder):
    return [str(f) for f in Path(folder).iterdir()]

def create_image_list(folder):
    image_list=[]
    folder = Path(folder)
    if folder.is_file():
        image = ImageClip(str(folder),duration=1)
        image_list.append(image)
    if folder.is_dir():
        for file in sorted(folder.iterdir(), reverse=True):
            image = ImageClip(str(file),duration=1)
            image_list.append(image)
    return image_list

def filename(folder):
    file_name = ''.join(random.choice(string.ascii_lowercase) for i in range(5))
    file_name = str(Path(folder).joinpath(file_name + '.mp4'))
    return file_name

#Папка для сохранения видео
result_folder = r'C:\Users\home\Desktop\VIDEO'
#Папка с картиками
images = create_image_list(r'C:\Users\home\Desktop\PNG')
#Папка с видео которые будут обработаны
video_ls = create_file_list(r'C:\Users\home\Desktop\SAVE')
#Фильтрыpip
unq_filter_params =["colorbalance=rs=.3","colorbalance=gs=-0.20","colorbalance=gs=0.20","colorbalance=bs=-0.30","colorbalance=bs=0.30","colorbalance=rm=0.30","colorbalance=rm=-0.30","colorbalance=gm=-0.25","colorbalance=bm=-0.25","colorbalance=rh=-0.15","colorbalance=gh=-0.20","colorbalance=bh=-0.20"]

for video in video_ls:
    clip = VideoFileClip(video).subclip(0,5)
    #Эффект появления
    clip = vfx.fadein(clip, duration=4)
    #Отражаем видос
    clip_mirror = vfx.mirror_x(clip)
    #Настройки картинки: set_duration - длительность, resize - изменение размера
    img = random.choice(images).set_duration(3).resize(1.1)
    #Общий клип. set_position - положение картинки. set_start - тайминг появления
    new_video = CompositeVideoClip([clip_mirror, img.set_position(("center",0.68),relative=True).set_start(clip.duration - 3)])
    #Сохраняем видос
    new_video.write_videofile(filename(result_folder), ffmpeg_params=['-filter_complex', random.choice(unq_filter_params)])
  • Вопрос задан
  • 130 просмотров
Пригласить эксперта
Ответы на вопрос 1
@TuttyFrutti
IndexError: Cannot choose from an empty sequence
- нельзя выбрать из пустой последовательности, то есть переменная images пустая => не удалось найти картинки.
Возможно потому что функция поиска картинок работает на глубину 1, то есть не будет искать в подпапках
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы