I’m trying to extract the frames of a video as individual images but it’s really slow, except when I’m using jpeg. The obvious issue with jpegs is the data loss from the compression, I want the images to be lossless. Extracting them as jpegs manages about 50-70 fps but as pngs it’s only 4 fps and it seems to continue getting slower, after 1 minute of the 11 minute video it’s only 3.5 fps.

I suspect it’s because I’m doing this on an external 5tb hard drive, connected over USB 3.0 and the write speed can’t keep up. So my idea was to use a different image format. I tried lossless jpeg xl and lossless webp but both of them are even slower, only managing to extract at about 0.5 fps or something. I have no idea why that’s so slow, the files are a lot smaller than png, so it can’t be because of the write speed.

I would appreciate it if anyone could help me with this.

  • FischOP
    link
    fedilink
    English
    arrow-up
    1
    ·
    2 months ago

    At this point I’m very sure that the drive speed is actually the bottleneck. I’m not sure why it’s so slow tho. Splitting it is an interesting idea, maybe it’s also possible to tell ffmpeg to only extract every 6th frame and start at a different frame for each of the 6 cores.