rosell-dk / webp-express

Wordpress plugin for serving autogenerated WebP images instead of jpeg/png to browsers that supports WebP
GNU General Public License v3.0
227 stars 64 forks source link

Bulk convert stuck (due to fatal error on too big files?) #316

Open vysmaty opened 5 years ago

vysmaty commented 5 years ago

hi, i am not sure, where the problem is… but on certain files bulk convert stuck. a file with ".webp.lossy.webp" is created. sample.zip image

could this report help? Martin

rosell-dk commented 5 years ago

It seems that the converter halts when creating the lossless version.

You have configured Jpeg options > WebP encoding to "auto". In this mode, WebP Express will first try to convert to lossless webp. It will save the result to a file with the ".webp.lossy.webp" extension. Next, it will try lossless and save the result to a file with the ".webp.lossless.webp" extension. Next, it will delete the largenst of these two and rename the winner, which will simply get the "webp" extension.

I have tried converting the image that you supplied with Imagick. It succeeds. And the lossy version is btw smallest. With that file, you can simply rename it manually (remove ".lossy.webp").

To avoid this from happening again, you can set Jpeg options > WebP encoding to "lossy". But then you will not always get the best result.

I'm planning a filemanager-like interface for conversion. When that feature comes, you will be able to convert the problematic images manually with the "lossy" setting rather than "auto"

To find out what went wrong during the lossless conversion you can try to look in wp-content/webp-express/log/conversions and see if you can find answers in the appropriate log file. I'm not sure if you will find answers there. But please have a look. If there are no answers there, my best bet is that the problem is a script timeout - since this only fails on some images (right?)

rosell-dk commented 5 years ago

I had a look again. The lossless conversion makes that image 400% bigger. I'm guessing that the problem is memory overflow. It is more resource extensive to create a lossless webp than a lossy. If that theory is correct, you should will experience this bug on the big images only.