使用Python的moviepy合并图片与音频生成视频无声音问题求助
问题原因与解决方法
核心错误
你代码中给视频绑定音频的写法错误,导致音频没有被正确写入输出文件:
- 原代码行
clip.set_audio = audio属于完全错误的用法:set_audio是MoviePy提供的实例方法,不是可以直接赋值的属性。同时你注释掉的clip.audio = audio本身是正确写法,却没有启用。
两种修复方案
你可以任选其中一种修改对应代码即可:
方案1:调用set_audio方法绑定音频
set_audio方法会返回绑定了音频的新剪辑对象,需要赋值回原变量才会生效:
clip = clip.set_audio(audio)
方案2:直接给audio属性赋值
直接取消你注释的那行代码即可,无需使用set_audio方法:
# 删掉错误的clip.set_audio = audio行,取消下面这行的注释 clip.audio = audio
额外排查点
如果修改后还是没有声音,可以检查以下两项:
- 确认
play.mp3文件存放在当前代码执行的工作目录下,路径错误、文件不存在都会导致无音频 - 确认
play.mp3文件本身可以正常播放,无损坏
修正后完整代码示例
import moviepy.editor as mpy import os directory_root = os.path.join("R:/", "Rajat", "voices", "same images") files = os.listdir(directory_root) files = [os.path.join(directory_root, f) for f in files] clip = mpy.ImageSequenceClip(files, fps=10) audio = (mpy.AudioFileClip("play.mp3") .set_duration(clip.duration)) clip = clip.set_audio(audio) clip.write_videofile("my_video1.mp4")
内容的提问来源于stack exchange,提问作者Rajat Saini
相关产品推荐
相关产品推荐

