from moviepy.editor import VideoFileClip, ImageClip, CompositeVideoClip
from PIL import Image
import os
# File paths
original_video_path = "/mnt/data/VID_20250725_111200_481.mp4"
user_image_path = "/mnt/data/image.png"
output_video_path = "/mnt/data/final_output_video.mp4"
# Load original video to get duration and size
original_clip = VideoFileClip(original_video_path)
video_duration = original_clip.duration
video_size = original_clip.size
# Load user's image and resize it to fit video dimensions
user_image = Image.open(user_image_path)
user_image = user_image.resize(video_size)
user_image.save("/mnt/data/resized_user_image.png")
# Create an ImageClip from the resized image
image_clip = ImageClip("/mnt/data/resized_user_image.png", duration=video_duration)
# Set same FPS and duration as original video, then overlay effects if needed
final_video = CompositeVideoClip([image_clip.set_duration(video_duration)])
final_video = final_video.set_audio(original_clip.audio) # Keep the original audio
# Export the final video
final_video.write_videofile(output_video_path, codec="libx264", audio_codec="aac")
output_video_path