0x90d / videoduplicatefinder

Video Duplicate Finder - Crossplatform
1.93k stars 185 forks source link

[Bug]: FFmpeg not working in path or /bin #525

Open yami-no-tusbas opened 3 months ago

yami-no-tusbas commented 3 months ago

Environment

Describe the bug

When I use native ffmpeg binding I got this for every video, acceleration is set to CUDA since I have NVIDIA GPU (RTX 4090). Iy don't care that my ffmpeg are in ./bin or in the path ,I always end up with this error, I've Tried 6.x, 7.x, nightly ffmpeg build, nothing is working here. But the most strange thing is... If I use the command your app is spawning, it work flawlessly I get the image. Since I had two GPU (integrated and dedicated) I tried too remove the integrated one from windows, and it did not change anything, it is not a matter of using the wrong GPU, since now I only have my rtx in windows. I also tried using DXVA2, OpenCL and Vulkan, just in case, it is the same error each time except that AV_HWDEVICETYPE chance to whatever I tried.

12:04:05 => Failed using native FFmpeg binding on 'G:\path to video\enco\1 (48) 4740296 [AV1(8bits) 35Q]_05-07-24_19-59_enc.mkv', try switching to process mode. Exception: System.Exception: Failed to find compatible pixel format for AV_HWDEVICE_TYPE_CUDA
   at VDF.Core.FFTools.FFmpegNative.VideoStreamDecoder.GetHWPixelFormat(AVHWDeviceType hwDevice, AVCodec* codec) in D:\a\videoduplicatefinder\videoduplicatefinder\VDF.Core\FFTools\FFmpegNative\VideoStreamDecoder.cs:line 138
   at VDF.Core.FFTools.FFmpegNative.VideoStreamDecoder..ctor(String url, AVHWDeviceType HWDeviceType) in D:\a\videoduplicatefinder\videoduplicatefinder\VDF.Core\FFTools\FFmpegNative\VideoStreamDecoder.cs:line 50
   at VDF.Core.FFTools.FfmpegEngine.GetThumbnail(FfmpegSettings settings, Boolean extendedLogging) in D:\a\videoduplicatefinder\videoduplicatefinder\VDF.Core\FFTools\FfmpegEngine.cs:line 179

And fun fact, I get this error for every single video ! (Most of themare in AV1 format.) I got the error on mp4 files too, so it's not related to AV1.

0x90d commented 3 months ago

If I use the command your app is spawning, it work flawlessly

Your log doesn't show that VDF fails in non-native mode. At least it doesn't show what kind of error it would get. Can you show more information here? Perhaps enable detailed ffmpeg logging in VDF.

I also tried using DXVA2, OpenCL and Vulkan, just in case, it is the same error

FFmpeg's avcodec_get_hw_config function returns null. This is not a bug in VDF. Ffmpeg docs describe this as the following: If the codec does not support any hardware configurations then it will always return NULL.

Running it on the ffmpeg executable might work as fffmpeg executable has thousands of fallbacks. It might get the thumbnail but not hardware accelerated (even if you explicit told ffmpeg to do so).

yami-no-tusbas commented 3 months ago

so, ffmpeg in /bin is the binaries and dlls from : "ffmpeg-7.0.1-full_build-shared.7z" I checked the extended FFTools Logging and there are the logs : log.txt

I do not know where to have more logs, I can try updating my drivers for nvidia, but geforce should have kept them updated, plus it's a brand new clean install of windows since I changed my cpu and motherboard. And just to be sure, I tried deactivating re-sizeable BAR, it changed nothing too. Without more logs I'm with no clues.