编写视频文件时未定义Python moviepy阅读器

时间:2019-04-25 01:24:28

标签: python python-3.x moviepy

我正在尝试将几套AudioFileClip和ImageClip组合成一部电影。但是我遇到了一个奇怪的错误,我花了很长时间,尝试了许多尝试并使其正常工作。

我尝试过:

  • 创建一个组合的AudioClip,然后将其添加到组合的ImageClip中,而不是添加一堆已经附加了音频的ImageClips
  • 将剪辑放在一起的不同方式,例如.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()

我希望这会输出一个包含3个剪辑的mp4文件,每个剪辑都使用tts打招呼。 TTS可以正常工作并且可以正确输出mp3,当我注释掉set_audio行时,它可以正常工作,但是当我将所有剪辑组合到单个mp4中时,它会出错。

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

完全错误: https://mystb.in/ulusafajan.rb

列表中的对象都不是“无”,我很困惑为什么级联剪辑没有阅读器

任何帮助都将受到赞赏!谢谢!

0 个答案:

没有答案