00:00 / 00:00
from 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  # 多线程加速渲染
) by Hailuo AI Video Generator
探索者2088 by Hailuo AI Video Generator探索者2088
创意描述
复制

from 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 # 多线程加速渲染 )

T2V-01-Director
启用优化
720P
内容由AI生成