我正在尝试将一个 mp3 音频文件添加到我使用 MoviePy 用图像创建的视频剪辑中。当脚本运行时,它会创建 mp4 文件并成功播放,但是没有音频。我不太确定为什么,并且似乎无法找到大量关于此的一般文档。 MoviePy 对我来说很新,所以任何帮助将不胜感激 - 谢谢!
def make_video(images):
image_clips = []
for img in images:
if not os.path.exists(img):
raise FileNotFoundError(img)
ic = ImageClip(img).set_duration(3)
image_clips.append(ic)
video = concatenate(image_clips, method="compose")
video.set_audio(AudioFileClip("audio.mp3"))
video.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
最佳答案
诚然,这个问题很老,但在该问题的搜索结果中排名靠前。我有同样的问题,并认为解决方案可以澄清。
线路:
video.set_audio(AudioFileClip("audio.mp3"))
实际上不会更改“视频”对象的音轨,而是返回附加了新 AudioFileClip 的对象副本。
这意味着该方法:
video.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
不会用新的音轨写入最终文件,因为“视频”对象保持不变。
按照以下更改脚本为我解决了这个问题。
video_with_new_audio = video.set_audio(AudioFileClip("audio.mp3"))
video_with_new_audio.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
另见 the docs
关于python - 将 Mp3 添加到 VideoFileClip MoviePy 时没有音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40445885/