I'd like to make video file from image and audio. However I can't export video. I got this error. ValueError: Attribute 'duration' not set
. I set duration on image clip. like this.
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)
This is the result. audio_clip has duration. However image_clip can not set duration.
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
If you have any idea, please help me!