python - 将 Mp3 添加到 VideoFileClip MoviePy 时没有音频

标签 python opencv audio moviepy

我正在尝试将一个 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/

相关文章:

python - Python 中的二维关联数组

python - Web 自动化可以用 Python 完成吗?

opencv - OpenCV || matchShapes findContours断言失败

c - 在 Opencv 中使用 IPL_DEPTH_32f

c++ - 在 OpenCV 中查询最大网络摄像头分辨率

javascript - JavaScript .play()和.pause()无法正常工作

python : speed dating & permutation

python - 如何在 webdriver 中使用 onclick 事件作为选择器?

audio - ALSA:在播放声音时在C代码中使用插件

Python音频信号分类MFCC特征神经网络