ImageClip.set_duration() 在 moviepy 中不起作用
ImageClip.set_duration() does not works in moviepy
我想从图像和音频制作视频文件。但是我无法导出视频。我收到了这个错误。 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)
我想从图像和音频制作视频文件。但是我无法导出视频。我收到了这个错误。 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)