INNER CODE UNIT · Python
load_frames_from_video
OpenVGLab/OmniLottie · app.py:96
def load_frames_from_video(video_path, num_frames=8, max_size=336):
import os
ext = os.path.splitext(video_path)[1].lower()
frames = []
if ext in ('.gif', '.webp'):
try:
img = PILImage.open(video_path)
total_frames = getattr(img, 'n_frames', 1)
if total_frames < 1:
raise ValueError(f"No frames in {ext.upper()}: {video_path}")
indices = np.linspace(0, total_frames - 1, min(num_frames, total_frames)).astype(int)
for idx in indices:
img.seek(idx)