File size: 1,018 Bytes
4fa8bcb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import glob
import os
from PIL import Image
from video_sequencer.assemble_video import assemble_video
import numpy as np
from utils.path_utils import resolve_path

def generate_frames_and_video(coords, output_folder="frames", fps=5, frame_size=64):
    # Use /tmp directory for frames
    tmp_frames_dir = os.path.join("tmp", output_folder)
    os.makedirs(tmp_frames_dir, exist_ok=True)
    
    # Clean up any existing frames
    for file in glob.glob(os.path.join(tmp_frames_dir, "*.png")):
        os.remove(file)

    for i, (x, y) in enumerate(coords):
        px = int(x * (frame_size - 1))
        py = int(y * (frame_size - 1))
        frame = np.zeros((frame_size, frame_size), dtype=np.uint8)
        frame[py, px] = 255

        img = Image.fromarray(frame).convert("RGB")
        img.save(os.path.join(tmp_frames_dir, f"frame_{i:03}.png"))

    output_video_path = os.path.join(tmp_frames_dir, "output_video.mp4")
    assemble_video(tmp_frames_dir, output_video_path, fps=fps)
    return output_video_path