探索者2088from moviepy.editor import *
from moviepy.video.fx.all import speedx
# ---------- 配置参数 ----------
# 音乐文件路径
bgm_path = "bgm.mp3"
# 动漫素材片段路径列表(需提前裁剪好短片段)
clips_path = [
"鬼灭_炭治郎战斗.mp4",
"咒术_五条悟领域展开.mp4",
"海贼王_路飞四档.mp4",
"巨人_兵长砍猴.mp4"
]
output_path = "anime_mashup.mp4" # 输出路径
# ---------- 步骤1: 加载素材 ----------
# 加载音乐并分析节奏间隔(示例手动定义,实际可用节拍检测库如librosa)
audio = AudioFileClip(bgm_path)
beat_intervals = [0.5, 0.3, 0.4, 0.6] # 假设每0.5秒左右一个卡点切换
# 加载所有视频片段并统一为2秒短clip
clips = []
for path in clips_path:
clip = VideoFileClip(path).subclip(0, 2) # 取前2秒
clips.append(clip.resize((1920, 1080))) # 统一分辨率
# ---------- 步骤2: 卡点剪辑处理 ----------
final_clips = []
current_time = 0
for i, interval in enumerate(beat_intervals):
# 每个节奏点切换一个片段(循环使用素材)
clip = clips[i % len(clips)]
# 卡点时刻变速:根据节奏调整播放速度
clip = clip.fx(speedx, 1.2) if i % 3 == 0 else clip # 每3个片段加速一次
# 添加转场效果(示例:淡入淡出)
if i > 0:
final_clips[-1] = final_clips[-1].crossfadeout(0.2)
clip = clip.crossfadein(0.2)
final_clips.append(clip.set_start(current_time))
current_time += interval
# ---------- 步骤3: 合成并导出 ----------
final_video = CompositeVideoClip(final_clips).set_audio(audio)
final_video.write_videofile(
output_path,
fps=24,
codec="libx264",
audio_codec="aac",
threads=8 # 多线程加速渲染
)
Hailuo 01-Director
提示词优化
720p
内容由AI生成