Читатель Python Movie не определен при записи видео файла - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь объединить несколько наборов AudioFileClip и ImageClip в один фильм.Но у меня странная ошибка, я потратил много времени и пытался многое сделать, чтобы заставить его работать.

Я пытался:

  • Создание одного объединенного аудиоклипа, а затемдобавление его к объединенным клипам изображений вместо добавления набора клипов изображений, к которым уже подключен звук
  • Различные способы объединения клипов, например .set_audio, и использование временного аудиофайла при записи клипа в файл
  • Тестирование аналогичной ситуации в консоли, которая работала
  • Поиск и поиск по документам moviepy и предыдущим вопросам
from moviepy import editor as mp
from gtts import gTTS
from mutagen.mp3 import MP3


class test:
    def __init__(self):
        self.clips = []

    def add_clip(self, text, picture_path, audio_path):
        tts = gTTS(text)
        tts.save(audio_path)

        duration = MP3(audio_path).info.length

        image_clip = mp.ImageClip(picture_path, duration=duration)
        audio = mp.AudioFileClip(audio_path)
        image_clip = image_clip.set_audio(audio)
        self.clips.append(image_clip)
        audio.close()
        image_clip.close()


t = test()
t.add_clip("Hello", 'screenshots/t3_bgykzb/main.png', 'screenshots/t3_bgykzb/main.mp3')
t.add_clip("Hello", 'screenshots/t3_bgykzb/main2.png', 'screenshots/t3_bgykzb/main.mp3')
t.add_clip("Hello", 'screenshots/t3_bgykzb/main3.png', 'screenshots/t3_bgykzb/main.mp3')

main_clip = mp.concatenate_videoclips(t.clips)
main_clip.write_videofile(f'screenshots/movie.mp4', fps=24)
main_clip.close()

Я ожидаю, что это выведет файл mp4, который имеет3 клипа, каждый из которых говорит привет с помощью tts.TTS работает нормально и правильно выводит mp3, работает нормально, когда я закомментирую строку set_audio, но когда я объединяю все клипы в один mp4, возникает ошибка.

AttributeError: 'NoneType' object has no attribute 'get_frame'

Полная ошибка:https://mystb.in/ulusafajan.rb

Ни один из объектов в списке не является None, и я запутался, почему у объединенного клипа нет считывателя

Любая и вся помощь приветствуется!Спасибо!

...