问题描述
我想从图像和音频制作视频文件。但是我不能导出视频。我收到了这个错误。 ValueError: Attribute 'duration' not set
。我在图像剪辑上设置了持续时间。像这样。
image_path = 'img/opening.png'
audio_path = 'audio/opening.mp3'
video_path = 'mov/opening.mp4'
image_clip = ImageClip(image_path)
audio_clip = AudioFileClip(audio_path)
logging.info(f'audio_duration: {audio_clip.duration}')
image_clip.set_duration(audio_clip.duration)
image_clip.set_audio(audio_clip)
logging.info(f'image_clip duration: {image_clip.duration}')
image_clip.write_videofile(video_path)
这是结果。 audio_clip 有持续时间。但是 image_clip 不能设置持续时间。
INFO:root:audio_duration: 1.7
INFO:root:image_clip duration: None
Traceback (most recent call last):
File "/Users/main/Library/Application Support/JetBrains/ToolBox/apps/PyCharm-P/ch-0/211.7142.13/PyCharm.app/Contents/plugins/python/helpers/pydev/pydevd.py",line 1483,in _exec
pydev_imports.execfile(file,globals,locals) # execute the script
File "/Users/main/Library/Application Support/JetBrains/ToolBox/apps/PyCharm-P/ch-0/211.7142.13/PyCharm.app/Contents/plugins/python/helpers/pydev/_pydev_imps/_pydev_execfile.py",line 18,in execfile
exec(compile(contents+"\n",file,'exec'),glob,loc)
File "/Users/main/project/video_maker/word_movie_maker.py",line 165,in <module>
movie_maker.create_opening()
File "/Users/main/project/video_maker/word_movie_maker.py",line 149,in create_opening
image_clip.write_videofile(video_path)
File "<decorator-gen-55>",line 2,in write_videofile
File "/Users/main/project/video_maker/venv/lib/python3.9/site-packages/moviepy/decorators.py",line 52,in requires_duration
raise ValueError("Attribute 'duration' not set")
ValueError: Attribute 'duration' not set
如果您有任何想法,请帮助我!
解决方法
.set_duration()
和 .set_audio()
需要在 image_clip
上设置。
image_clip = image_clip.set_duration(audio_clip.duration)
image_clip = image_clip.set_audio(audio_clip)