from moviepy.editor import VideoFileClip, AudioFileClip, vfx def add_music_to_video(video_path, audio_path, fadein_duration=1, fadeout_duration=1, output_path='output_video.mp4'): """ 将音频添加到视频中,去除原视频音频,并设置音频的淡入淡出效果。 Args: video_path (str): 原视频文件路径 audio_path (str): 音频文件路径 fadein_duration (int): 音频淡入时长(秒) fadeout_duration (int): 音频淡出时长(秒) output_path (str): 保存添加了音乐的视频文件路径 """ # 加载视频和音频 video = VideoFileClip(video_path) audio = AudioFileClip(audio_path) # 输出视频时长 duration = min(video.duration, audio.duration) # 视频倍速 # video= video.fx(vfx.speedx, video.duration/5.0) # 设置音频的淡入淡出效果 audio = audio.audio_fadein(fadein_duration).audio_fadeout(fadeout_duration) audio.set_duration(duration) # 将视频的音频替换为新的音频 video = video.set_duration(duration) video = video.set_audio(audio) # 保存处理后的视频 video.write_videofile(output_path, codec='libx264', audio_codec='aac', threads=4, preset="ultrafast") # 关闭视频和音频对象 video.close() audio.close() # 使用示例 if __name__ == "__main__": add_music_to_video('output/video_clips/show-clip.mp4', 'data/music_file/music.mp3', fadein_duration=3, fadeout_duration=3, output_path='music_video.mp4')