用moviepy合成两个配乐

时间:2018-04-14 20:26:10

标签: python moviepy

我正在尝试为剪辑添加音频。问题是它是用新的音轨替换原来的音轨,即pond5.wav。我首先连接一些小片段,每个片段都包含原始配乐。然而,最终结果不包含原始音轨。我需要原始和新的音轨(新音轨的音量必须低于原始音轨)。我需要线索如何修改以下代码并合成两个音轨。

media = "promo"

clips = [VideoFileClip(clip) 
         for clip in get_filepaths(media) 
         if ntpath.basename(clip).startswith('clip_')
         and ntpath.basename(clip).endswith('.mp4')
         ] 

vclip = concatenate_videoclips([clips[0],
                                clips[1].crossfadein(0.3),
                                clips[2].crossfadein(0.3),
                                clips[3].crossfadein(0.3),
                                ], 
                               method="compose", 
                               padding=-0.3)

audio = AudioFileClip(os.path.join(folder,"pond5.wav"))
audio = audio.audio_loop(duration=vclip.duration)
cc = vclip.set_audio(audio
                     .set_duration(vclip.duration)
                     .volumex(0.3)
                     .audio_fadein(1.0)
                     .audio_fadeout(1.0)
                     )
cc.write_videofile(os.path.join(folder, "demo.mp4"), fps=60, codec="libx264", bitrate="20000k", threads=6)

1 个答案:

答案 0 :(得分:0)

您需要根据vclip的音频创建复合音频片段,并将其设置为音频。诸如此类(未测试):

    composite = CompositeAudioClip(clicp.audio + [audio])
    # set audio returns a new instance...
    final = vclip.set_audio(composite)
    final.writevideofile(...)