[VLM] Replace decord with torchcodec for video decoding (#20055)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: BakerBunker <17872844+BakerBunker@users.noreply.github.com>
This commit is contained in:
@@ -15,11 +15,12 @@ import numpy as np
|
||||
import openai
|
||||
import pybase64
|
||||
import requests
|
||||
from decord import VideoReader, cpu
|
||||
from PIL import Image
|
||||
|
||||
from sglang.srt.utils.video_decoder import VideoDecoderWrapper
|
||||
|
||||
# pip install httpx==0.23.3
|
||||
# pip install decord
|
||||
# pip install torchcodec
|
||||
# pip install protobuf==3.20.0
|
||||
|
||||
|
||||
@@ -200,13 +201,13 @@ def video_speed_test(client, video_path):
|
||||
|
||||
def prepare_video_messages(video_path):
|
||||
max_frames_num = 32
|
||||
vr = VideoReader(video_path, ctx=cpu(0))
|
||||
total_frame_num = len(vr)
|
||||
decoder = VideoDecoderWrapper(video_path)
|
||||
total_frame_num = len(decoder)
|
||||
uniform_sampled_frames = np.linspace(
|
||||
0, total_frame_num - 1, max_frames_num, dtype=int
|
||||
)
|
||||
frame_idx = uniform_sampled_frames.tolist()
|
||||
frames = vr.get_batch(frame_idx).asnumpy()
|
||||
frames = decoder.get_frames_at(frame_idx)
|
||||
|
||||
base64_frames = []
|
||||
for frame in frames:
|
||||
|
||||
Reference in New Issue
Block a user