我正在尝试将几套AudioFileClip和ImageClip组合成一部电影。但是我遇到了一个奇怪的错误,我花了很长时间,尝试了许多尝试并使其正常工作。
我尝试过:
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
列表中的对象都不是“无”,我很困惑为什么级联剪辑没有阅读器
任何帮助都将受到赞赏!谢谢!