1234567891011121314151617181920212223242526272829303132333435363738394041 |
- 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')
|