ScreenToGif
ScreenToGif copied to clipboard
[Bug] ScreenToGif.2.39 X64 Portable Build - ScreenToGif.EncodeWithFfmpeg Path Error
Description
Saving project as Mp4 with default encoder fails due to intermediary 'no such file or directory' issues (missing correct path to temp
).
To Reproduce Steps to reproduce the behavior:
- Download the latest X64 portable build of ScreenToGif
- Open Recorder
- Record a screen capture
- Close Recorder
- Open Editor
- Attempt to save as MP4
- Select the
ffmpeg.exe
location if prompted to locate - Use default settings for MP4 and attempt to save
- Encoding will fail
Expected behavior ScreenToGif should produce a valid MP4 video.
Screenshots
at ScreenToGif.Util.EncodingManager.EncodeWithFfmpeg(ExportPreset preset, List`1 listFrames, Int32 id, CancellationTokenSource tokenSource, String processing) in C:\Users\[redacted]\source\ScreenToGif\ScreenToGif\Util\EncodingManager.cs:line 1774
at ScreenToGif.Util.EncodingManager.Encode(ExportProject project, ExportPreset preset, Int32 id, CancellationTokenSource tokenSource) in C:\Users\[redacted]\source\ScreenToGif\ScreenToGif\Util\EncodingManager.cs:line 1038
Command:
-hwaccel auto -safe 0 -f concat -i "file:temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\concat.txt" -c:v libx264 -preset fast -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -f mp4 -vsync passthrough -y "gifs\you_died.mp4"
Result:
ffmpeg version N-112250-g6f7bf64dbc-20231001 Copyright (c) 2000-2023 the FFmpeg developers
built with gcc 13.2.0 (crosstool-NG 1.25.0.232_c175b21)
configuration: --prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os=mingw32 --enable-gpl --enable-version3 --disable-debug --disable-w32threads --enable-pthreads --enable-iconv --enable-libxml2 --enable-zlib --enable-libfreetype --enable-libfribidi --enable-gmp --enable-lzma --enable-fontconfig --enable-libharfbuzz --enable-libvorbis --enable-opencl --disable-libpulse --enable-libvmaf --disable-libxcb --disable-xlib --enable-amf --enable-libaom --enable-libaribb24 --enable-avisynth --enable-chromaprint --enable-libdav1d --enable-libdavs2 --disable-libfdk-aac --enable-ffnvcodec --enable-cuda-llvm --enable-frei0r --enable-libgme --enable-libkvazaar --enable-libass --enable-libbluray --enable-libjxl --enable-libmp3lame --enable-libopus --enable-librist --enable-libssh --enable-libtheora --enable-libvpx --enable-libwebp --enable-lv2 --enable-libvpl --enable-openal --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenh264 --enable-libopenjpeg --enable-libopenmpt --enable-librav1e --enable-librubberband --enable-schannel --enable-sdl2 --enable-libsoxr --enable-libsrt --enable-libsvtav1 --enable-libtwolame --enable-libuavs3d --disable-libdrm --enable-vaapi --enable-libvidstab --enable-vulkan --enable-libshaderc --enable-libplacebo --enable-libx264 --enable-libx265 --enable-libxavs2 --enable-libxvid --enable-libzimg --enable-libzvbi --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-ldexeflags= --extra-libs=-lgomp --extra-version=20231001
libavutil 58. 27.100 / 58. 27.100
libavcodec 60. 27.100 / 60. 27.100
libavformat 60. 13.100 / 60. 13.100
libavdevice 60. 2.101 / 60. 2.101
libavfilter 9. 11.100 / 9. 11.100
libswscale 7. 4.100 / 7. 4.100
libswresample 4. 11.100 / 4. 11.100
libpostproc 57. 2.100 / 57. 2.100
-vsync is deprecated. Use -fps_mode
[concat @ 00000228ddb53840] Impossible to open 'file:temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\0.png'
[in#0 @ 00000228ddb532c0] Error opening input: No such file or directory
Error opening input file file:temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\concat.txt.
Error opening input files: No such file or directory
Desktop:
- OS: Windows 10
- Version 22H2
Additional context Can successfully encode other formats without any known problems, so this issue seems specific to feeding ffmpeg correct path parameters
I could not repro this on my version (latest release 2.39 and build from source), but this line of ffmpeg
output looks interesting
[concat @ 00000228ddb53840] Impossible to open 'file:temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\temp\ScreenToGif\Recording\2023-09-30 23-48-03\Encode 2023-10-01 07-06-00-89\0.png'
For some reason it looks like the path is duplicated. Also, when I test this, I have a full path to a file and here it's only a relative one.
Neither full path nor relative path seem to work for me.
I could not repro this on my version (latest release 2.39 and build from source)
at ScreenToGif.Util.EncodingManager.EncodeWithFfmpeg(ExportPreset preset, List`1 listFrames, Int32 id, CancellationTokenSource tokenSource, String processing) in C:\Users\[redacted]\source\ScreenToGif\ScreenToGif\Util\EncodingManager.cs:line 1774
at ScreenToGif.Util.EncodingManager.Encode(ExportProject project, ExportPreset preset, Int32 id, CancellationTokenSource tokenSource) in C:\Users\[redacted]\source\ScreenToGif\ScreenToGif\Util\EncodingManager.cs:line 1038
So I'm pretty sure I shouldn't have those first lines in my error messages (after all, my username isn't [redacted]
)...
Have you tried installing on a different machine?
So I'm pretty sure I shouldn't have those first lines in my error messages (after all, my username isn't
nicke
)... Have you tried installing on a different machine?
That's just the path saved along with debug symbols. It's from my setup.
What's in your cache path? The default should be %temp%
or to be safe %UserProfile%\AppData\Local\Temp
.
If your environment variable %temp% is set to anything other than the default value, it may result what you are experiencing now.
Interesting, it was using a relative temp
folder.
I was able to properly encode a mpeg-4 after switching to %temp%
.
Problem solved! (though it would probably be best to hide your personal build configuration paths from the error output for security reasons...)
Accidentally closed instead of just commented, my bad. Up to you to decide, after all.
By the way, is there any chance of working in a feature request for a dark mode skin for ScreenToGif? The bright white contrast is kind of hard on my primarily dark theme accustomed eyes.
Thank you for your swift response! (I was expecting to hear back from you after another two weeks or something)
Relative path does the trick of producing an error. Maybe the fix could be that if the relative path is entered, it could be resolved to a full one on Save
? I can see some code that might does do that (AdjustPath
calls) so maybe it's not covering all cases in this scenario (manually entered path)?
Well, that's certainly an idea, but couldn't the relative paths work by invoking the encoder from the ScreenToGif directory as the working directory or something?
Actually this might be a bit more convoluted than I first thought... https://superuser.com/a/943258
Well, that's certainly an idea, but couldn't the relative paths work by invoking the encoder from the ScreenToGif directory as the working directory or something?
Actually this might be a bit more convoluted than I first thought... https://superuser.com/a/943258
I'll check that one. Thanks for the link.
yeah, setting the relative paths, even with the working directory is set doesn't seems to be helping ffmpeg
:(
Interesting, it was using a relative
temp
folder. I was able to properly encode a mpeg-4 after switching to%temp%
.Problem solved! (though it would probably be best to hide your personal build configuration paths from the error output for security reasons...)
thanks! You are genius !