dergachev/screengif

OptimizeTransLayer can create trails on moving objects

joshuahhh opened this issue · 3 comments

Here's a little screencast of mine (zipped cuz Github insists): spreadLike.mov.zip.

If I run screengif -i spreadLike.mov -o spreadLike.gif -w 800 --no-gifsicle --no-coalesce, I get:

bad gif

Note the trails the gray circles leave as they move around. If I comment out canvas = canvas.optimize_layers(OptimizeTransLayer) in screengif.rb and run the same command, I get:

good gif

Much better!

It looks like OptimizeTransLayer significantly degrades animation quality in this use-case. I am not sure what is going on here, but it would be great if, at the very least, a command-line flag were available to disable it.

(Thanks a bunch for putting together this tool!)

Thank you so much for documenting this fix/workaround.

I found that I had to comment out both the OptimizePlusLayer and OptimizeTransLayer lines in ~/.gem/ruby/2.0.0/gems/screengif-0.0.3/lib/screengif.rb for all ghosting trails to disappear.

Agreed that temporary solution to add a command-line flag would be very helpful.

I have same issue for this. Comment out OptimizePlusLayer and OptimizeTransLayer help a lot.

shaft
Also seeing trails:

screengif --fuzz 10 --framerate 10 --delay 50 --delay-last 100 -i shaft-coupler-squareToD_20180824181649.mpg -o shaft.gif
> gem list screengif
screengif (0.0.3)

> brew list ffmpeg
/usr/local/Cellar/ffmpeg/4.0.2/bin/ffmpeg

brew list imagemagick
/usr/local/Cellar/imagemagick/7.0.8-10

## did have to do this to get the gem to install as well
brew unlink imagemagick
brew install imagemagick@6 && brew link imagemagick@6 --force