[GH-ISSUE #556] Gifski (encoder) can't recognize unchanged pixels #455

Closed
opened 2026-02-26 09:31:29 +03:00 by kerem · 6 comments
Owner

Originally created by @byzod on GitHub (Nov 19, 2019).
Original GitHub issue: https://github.com/NickeManarin/ScreenToGif/issues/556

Screen To Gif: 2.19.3
Encoder: Gifski
Platform: Windows 10 1703 x64


Problem

Gifski generates frames for even static recordings, results in duplicated frames and redundant file size


Demo generated from same project

Recording by gifski-quality 100 (frames: 81, file size: 5.91MB)

gifski-quality 100

Gif link if github said it's too large

Gifski-quality 100 zoom in. Note the flickering pixels.

gifski-quality 100-4x

Recording by 1.0-quality 1 (frames: 19, file size: 1.97MB)

1.0-quality 1

1.0-quality 1 zoom in. Unchanged pixels stay the same thus it's basically 1 frame with a long timeout

1.0-quality 1-4x

Originally created by @byzod on GitHub (Nov 19, 2019). Original GitHub issue: https://github.com/NickeManarin/ScreenToGif/issues/556 Screen To Gif: 2.19.3 Encoder: Gifski Platform: Windows 10 1703 x64 --- **Problem** Gifski generates frames for even static recordings, results in duplicated frames and redundant file size --- **Demo generated from same project** Recording by `gifski-quality 100` (frames: 81, file size: 5.91MB) ![gifski-quality 100](https://i.imgur.com/JDBtWTR.gif) [Gif link if github said it's too large](https://i.imgur.com/JDBtWTR.gif) `Gifski-quality 100` zoom in. Note the flickering pixels. ![gifski-quality 100-4x](https://i.imgur.com/2wFuuAV.gif) Recording by `1.0-quality 1` (frames: 19, file size: 1.97MB) ![1.0-quality 1](https://i.imgur.com/j6id38G.gif) `1.0-quality 1` zoom in. Unchanged pixels stay the same thus it's basically 1 frame with a long timeout ![1.0-quality 1-4x](https://i.imgur.com/w7M2ob9.gif)
kerem 2026-02-26 09:31:29 +03:00
Author
Owner

@NickeManarin commented on GitHub (Nov 20, 2019):

Have you tried to use the test version, available here #551 ? This test version uses the latest version of Gifski.
(Remember to delete the old Gifski.dll and download the new one via Options > Extras)

Because this looks like something that I have no control over it. It's something that Gifski controls it.
https://github.com/ImageOptim/gifski

<!-- gh-comment-id:555994382 --> @NickeManarin commented on GitHub (Nov 20, 2019): Have you tried to use the test version, available here #551 ? This test version uses the latest version of Gifski. (Remember to delete the old Gifski.dll and download the new one via Options > Extras) Because this looks like something that I have no control over it. It's something that Gifski controls it. https://github.com/ImageOptim/gifski
Author
Owner

@byzod commented on GitHub (Nov 20, 2019):

Played with ScreenToGif.2.20.Preview.3, but can't download the latest gifski, check the error log at the end of this comment.

Tested with the gifski.dll from 2.19.3, it has the same problem.


App crashed when click download button of extra > gifski. Details screen said:

Could not load file or assembly 'System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. 系统找不到指定的文件。

at ScreenToGif.Windows.Options.<GifskiImageCard_Click>d__82.MoveNext()
at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine)
at ScreenToGif.Windows.Options.GifskiImageCard_Click(Object sender, RoutedEventArgs e)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent)
at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e)
at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
at System.Windows.Input.InputManager.ProcessStagingArea()
at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input)
at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)

ScreenToGif.MoveNext
<!-- gh-comment-id:556002334 --> @byzod commented on GitHub (Nov 20, 2019): Played with `ScreenToGif.2.20.Preview.3`, but can't download the latest gifski, check the error log at the end of this comment. Tested with the `gifski.dll` from 2.19.3, it has the same problem. --- App crashed when click `download` button of `extra > gifski`. Details screen said: Could not load file or assembly 'System.IO.Compression, Version=4.2.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' or one of its dependencies. 系统找不到指定的文件。 at ScreenToGif.Windows.Options.<GifskiImageCard_Click>d__82.MoveNext() at System.Runtime.CompilerServices.AsyncVoidMethodBuilder.Start[TStateMachine](TStateMachine& stateMachine) at ScreenToGif.Windows.Options.GifskiImageCard_Click(Object sender, RoutedEventArgs e) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.Controls.Primitives.ButtonBase.OnClick() at System.Windows.Controls.Button.OnClick() at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.ReRaiseEventAs(DependencyObject sender, RoutedEventArgs args, RoutedEvent newEvent) at System.Windows.UIElement.OnMouseUpThunk(Object sender, MouseButtonEventArgs e) at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target) at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args) at System.Windows.Input.InputManager.ProcessStagingArea() at System.Windows.Input.InputManager.ProcessInput(InputEventArgs input) at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport) at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel) at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) ScreenToGif.MoveNext
Author
Owner

@NickeManarin commented on GitHub (Nov 20, 2019):

Do you have .NET Framework 4.8 installed?

<!-- gh-comment-id:556004005 --> @NickeManarin commented on GitHub (Nov 20, 2019): Do you have .NET Framework 4.8 installed?
Author
Owner

@byzod commented on GitHub (Nov 20, 2019):

Do you have .NET Framework 4.8 installed?

uhh, no?

Anyway, kornelski said

This is done on purpose as temporal dithering.

So I suppose the solution is Don't Use Gifski for Static Frames

<!-- gh-comment-id:556004411 --> @byzod commented on GitHub (Nov 20, 2019): > Do you have .NET Framework 4.8 installed? uhh, no? Anyway, kornelski [said](https://github.com/ImageOptim/gifski/issues/105#issuecomment-556002528) > This is done on purpose as temporal dithering. So I suppose the solution is *Don't Use Gifski for Static Frames*™
Author
Owner

@NickeManarin commented on GitHub (Nov 20, 2019):

uhh, no?

ScreenToGif v2.20 requires .NET Framework 4.8, so if you have an older version installed, some features may be broken. I'll add a message explaining that.

Anyway, kornelski said

Ohh, ok. Btw, the version of Gifski that you are using is 0.8.5.
The newer version that you tried to download is 0.9.3.

<!-- gh-comment-id:556006035 --> @NickeManarin commented on GitHub (Nov 20, 2019): > uhh, no? ScreenToGif v2.20 requires .NET Framework 4.8, so if you have an older version installed, some features may be broken. I'll add a message explaining that. > Anyway, kornelski said Ohh, ok. Btw, the version of Gifski that you are using is 0.8.5. The newer version that you tried to download is 0.9.3.
Author
Owner

@NickeManarin commented on GitHub (Nov 22, 2019):

Closing as external.

<!-- gh-comment-id:557536439 --> @NickeManarin commented on GitHub (Nov 22, 2019): Closing as external.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/ScreenToGif#455
No description provided.