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
    ·
    1 month ago

    Even if they use the same technique, they’re entirely different algorithms and h.264 also takes information from multiple different frames, which is why the video is 1.7gb but a folder with each frame saved as a png is over 300gb.

    The formats with the best compression, where it might be fine, are jpeg xl and webp, as far as I know. They’re even slower tho because they’re so CPU intensive and only use one thread.

    Setting the png compression to 0 doesn’t help because the bottleneck for png is the hard drives write speed. I already tried that.

    • Thann@lemmy.ml
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 month ago

      Yeah, that makes sense. There might be some useful interface in VAAPI?