mirror of
https://github.com/facefusion/facefusion.git
synced 2026-07-27 12:30:55 +02:00
8d2d7df040
With the canvas coming from the video reader, the extracted temp PNGs were never read for pixels -- extraction only produced write targets and a frame list. Drop the extract_frames step entirely: process_video iterates the trim range, each worker reads its frame from the reader, swaps, and writes straight to the temp frame path that merge consumes. Removes the whole extracting phase (a second full-video decode + PNG encode). Wall time drops ~25-36% (AV1 ~30 -> ~19 s, H.264 ~29 -> ~22 s for 300 frames); processing throughput unchanged; output unchanged. Note: this path does not resample fps (output_video_fps must equal source fps) and derives the frame count via cv2 container metadata; a scaled output falls back to a per-frame resize instead of the temp PNG. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>