Πέμπτη 14 Μαΐου 2026

from moviepy.editor import ImageClip, concatenate_videoclips from moviepy.audio.AudioClip import AudioArrayClip import numpy as np # Image paths image_paths = [ "/mnt/data/1000006704.jpg", "/mnt/data/1000006703.jpg", "/mnt/data/1000006705.jpg", "/mnt/data/1000006700.jpg", "/mnt/data/1000006701.jpg", "/mnt/data/1000006702.jpg", "/mnt/data/1000006697.jpg", "/mnt/data/1000006698.jpg", "/mnt/data/1000006699.jpg", ] clips = [] duration_per_image = 2.5 for path in image_paths: clip = ( ImageClip(path) .set_duration(duration_per_image) .resize(height=720) .fadein(0.4) .fadeout(0.4) ) clips.append(clip) video = concatenate_videoclips(clips, method="compose") # Background music generation sample_rate = 44100 total_duration = int(video.duration) + 1 t = np.linspace(0, total_duration, sample_rate * total_duration) audio_wave = ( 0.12 * np.sin(2 * np.pi * 220 * t) + 0.08 * np.sin(2 * np.pi * 277 * t) + 0.06 * np.sin(2 * np.pi * 330 * t) ) fade = np.linspace(0, 1, sample_rate * 2) audio_wave[:len(fade)] *= fade audio_wave[-len(fade):] *= fade[::-1] audio_stereo = np.column_stack((audio_wave, audio_wave)).astype(np.float32) audio_clip = AudioArrayClip(audio_stereo, fps=sample_rate).set_duration(video.duration) video = video.set_audio(audio_clip) output_path = "/mnt/data/TaSpitakia_video_clip.mp4" video.write_videofile( output_path, fps=24, codec="libx264", audio_codec="aac" ) print("Created:", output_path)

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου