用moviepy合成两首配乐

2024-09-24 00:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试向剪辑中添加音频。问题是它正在用新的音轨(即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)

Tags: pathcliposmediaaudiomp4durationwav
1条回答
网友
1楼 · 发布于 2024-09-24 00:23:23

您需要从vclip的音频创建一个复合音频剪辑,并将其设置为音频。类似(未测试):

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

相关问题 更多 >