パフォーマンス#2
This commit is contained in:
parent
d8d27ddf23
commit
fc2dc0a478
|
|
@ -188,6 +188,23 @@ def process_video_task(task_id: str, req: GenerateRequest):
|
|||
# Clear buffer
|
||||
frame_buffer.clear()
|
||||
|
||||
# Seek once to the starting frame. Avoid random-access seek on every frame.
|
||||
if req.start_frame > 0:
|
||||
seek_ok = cap.set(cv2.CAP_PROP_POS_FRAMES, req.start_frame)
|
||||
if not seek_ok:
|
||||
print(
|
||||
f"[FaceMask] Warning: CAP_PROP_POS_FRAMES seek failed, "
|
||||
f"fallback to sequential skip ({req.start_frame} frames)"
|
||||
)
|
||||
for _ in range(req.start_frame):
|
||||
ret, _ = cap.read()
|
||||
if not ret:
|
||||
tasks[task_id].status = TaskStatus.FAILED
|
||||
tasks[task_id].message = (
|
||||
f"Failed to seek to start frame: {req.start_frame}"
|
||||
)
|
||||
return
|
||||
|
||||
# Process loop with batching
|
||||
current_count = 0
|
||||
for frame_idx in range(req.start_frame, end_frame + 1):
|
||||
|
|
@ -196,8 +213,7 @@ def process_video_task(task_id: str, req: GenerateRequest):
|
|||
tasks[task_id].message = "Cancelled by user"
|
||||
break
|
||||
|
||||
# Read frame
|
||||
cap.set(cv2.CAP_PROP_POS_FRAMES, frame_idx)
|
||||
# Read next frame sequentially (after one-time initial seek)
|
||||
ret, frame = cap.read()
|
||||
|
||||
if ret:
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user