python根据音乐节拍将多张照片生成带音乐的相册视频代码

代码语言:python

所属分类:其他

代码描述:python根据音乐节拍将多张照片生成带音乐的相册视频代码,首先根据音乐获取节拍时间数据,然后将图片按照节拍点放置生成视频。

代码标签: python 根据 音乐 节拍 多张 照片 生成 音乐 相册 视频 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import librosa
import numpy as np
from moviepy.editor import *

def extract_beats(audio_file):
    # 加载音频文件
    y, sr = librosa.load(audio_file)
    
    # 使用librosa提取节拍
    tempo, beat_frames = librosa.beat.beat_track(y=y, sr=sr)
    
    # 将帧转换为时间戳
    beat_times = librosa.frames_to_time(beat_frames, sr=sr)
    
    return beat_times

def create_photo_video_with_music(image_files, audio_file, output_file):
    # 提取音乐节拍
    beat_times = extract_beats(audio_file)
    
    # 载入图片列表
    clips = []
    for i, image_file in enumerate(image_files):
        # 加载图片并调整尺寸
        img_clip = ImageClip(image_file).resize(newsize=(720, 480))  # 统一调整图片尺寸
        
        # 设置每张图片的持续时间为6节拍之间的时间差
        if i < len(beat_times) - 6:  # 防止超出范围
            duration = beat_times[i + 5] - beat_times[i]
        else:
            duration = 2  # 最后一张图片的时长(可以自定义)
        
  .........完整代码请登录后点击上方下载按钮下载查看

网友评论0