NickeManarin / ScreenToGif

🎬 ScreenToGif allows you to record a selected area of your screen, edit and save it as a gif or video.
http://www.screentogif.com
Microsoft Public License
23.04k stars 2.15k forks source link

[Bug] Insert Screen Recording - Not Working (Frames not found) #1288

Open LazyEti opened 3 months ago

LazyEti commented 3 months ago

Describe the bug Hello, it seems like the "Insert Screen Recording" feature is not working at all on my end which makes it very difficult to edit footage after recording.

To Reproduce Steps to reproduce the behavior:

  1. Create a recording.
  2. Add a new recording to it (Insert Screen Recording)
  3. When you end the 2nd recording, an error window appears saying that the frames files can't be found.

Expected behavior No crash :')

Screenshots error

Desktop (please complete the following information):

Additional context I tried looking up the path and there's indeed no temp frames in the folder. Tested on version 2.37.2 and 2.40.1 but the issue is happening on both.

Logs: Could not find file 'C:\Users\LazyEti\AppData\Local\Temp\ScreenToGif\Recording\2024-03-15 06-31-53\1.png'.

at Microsoft.Win32.SafeHandles.SafeFileHandle.CreateFile(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.Strategies.OSFileStreamStrategy..ctor(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.Strategies.FileStreamHelpers.ChooseStrategyCore(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, Nullable1 unixCreateMode) at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share) at ScreenToGif.Util.Extensions.ImageExtensions.SourceFrom(String fileSource, Nullable1 size) in C:\Users\nicke\source\ScreenToGif\ScreenToGif.Util\Extensions\ImageExtensions.cs:line 17 at ScreenToGif.Windows.Other.Insert.Window_Loaded(Object sender, RoutedEventArgs e) in C:\Users\nicke\source\ScreenToGif\ScreenToGif\Windows\Other\Insert.xaml.cs:line 277 at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget) at System.Windows.Interop.HwndTarget.OnResize() at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(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 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)

NickeManarin commented 3 months ago

I'm unsure what's causing the frame to be missing.

Have you tried setting the cache folder in the exception list of your Anti-virus?

image

Or perhaps you can try using the memory cache option in Options > Recorder

image

pawlos commented 3 months ago

@NickeManarin Actually I think the issue occurs when the memory cache is selected. In that case there are no files stored on the disk but the code assumes there are and they to move them and the exception happens. I'll try to see if there's a solution to that