from moviepy.editor import ImageClip, AudioFileClip def animate_scene(image_path, audio_path, idx): audio = AudioFileClip(audio_path) duration = audio.duration image_clip = ( ImageClip(image_path) .set_duration(duration) .set_audio(audio) .resize(height=720) .fx(lambda clip: clip.crossfadein(1).crossfadeout(1)) .zoom_in(1.05) ) out_path = f"assets/video/scene_{idx}.mp4" image_clip.write_videofile(out_path, fps=24, audio_codec="aac", verbose=False, logger=None) return out_path