motionx-ski-artifacts / code /video_inputs.py
fira-aslan's picture
Upload folder using huggingface_hub
723126c verified
Raw History Blame Contribute Delete
929 Bytes
import decord
import numpy as np
from qwen_vl_utils import process_vision_info
def build_video_item(path, fps, max_frames, max_pixels):
return {"type": "video", "video": str(path), "fps": fps,
"max_frames": max_frames, "max_pixels": max_pixels}
def prepare(messages, video_path):
out = process_vision_info(messages, return_video_kwargs=True)
videos = out[1]
vk = out[2] if len(out) > 2 else {}
vk = {k: (v[0] if isinstance(v, list) and len(v) == 1 else v) for k, v in vk.items()}
vr = decord.VideoReader(str(video_path), num_threads=1)
n_native = len(vr)
native_fps = float(vr.get_avg_fps())
n = videos[0].shape[0]
idx = np.linspace(0, n_native - 1, n).round().astype(int)
meta = [{"fps": native_fps, "duration": float(n_native / native_fps),
"total_num_frames": int(n_native), "frames_indices": idx}]
vk["video_metadata"] = meta
return videos, vk