Open chexo3 opened 1 year ago
I believe this might be the main Issue for this issue:
Did you install the package from an admin shell or user shell? Do you have developer mode enabled in Windows or not? Is this an installation of ffmpeg from a previous version of WinGet?
You may want to uninstall and reinstall the package. There was an issue with uninstalls of portable packages with WinGet 1.5, so I would suggest following the steps here https://github.com/microsoft/winget-pkgs/issues/95349#issuecomment-1565687097
Hello @chexo3,
It seems that your input is required to address the reported issue.
Template: msftbot/needsAuthorFeedback
Did you install the package from an admin shell or user shell? Do you have developer mode enabled in Windows or not? Is this an installation of ffmpeg from a previous version of WinGet?
You may want to uninstall and reinstall the package. There was an issue with uninstalls of portable packages with WinGet 1.5, so I would suggest following the steps here #95349 (comment)
User shell. AFAIK dev mode is not enabled. I have uninstalled and reinstalled multiple times. A previous broken uninstall required manual registry editing to fix. The package’s file were gone, but it was still listed as installed. So I had to delete a registry key so it wouldn’t be.
I’ve checked my path, the folder it adds to it doesn’t contain any executables, which is why I believe the package itself is broken.
Can confirm the install fails from a user shell. reinstall from admin shell works, but still installs the files to the user local app settings folder. Also I noticed that the user shell installs don't create the link in the "Links" folder but admin shell installs do.
Tried upgrading to gyan.ffmpeg v6.1 but both install and uninstall keep hanging. I tried to run them as admin but it doesn't make a difference.
Tried upgrading to gyan.ffmpeg v6.1 but both install and uninstall keep hanging. I tried to run them as admin but it doesn't make a difference.
@mstevens83 I've been trying to fix this all week, and after digging through the logs I got it working on my system. Uninstall was failing because the package was never properly installed in "\AppData\Local\Microsoft\WinGet\Packages\", and running the installer with the --force flag was hanging immediately after extracting all the data and setting the package data values.
Based on this, I assumed this was, like many weird bugs where Windows hangs in circles, a case of bad registry values triggering a weird loop. I went into the Windows Registry, navigated to "Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\" and deleted the entry associated with ffmpeg.
Ran winget install ffmeg, immediately installed and is working perfectly.
I think it goes without saying that hanging without an error message isn't great, having to go into the Windows registry to fix the error isn't great, and the fact that there isn't a --repair flag I can pass when things seem to be in an invalid state to revalidate and repair isn't great either.
Tried upgrading to gyan.ffmpeg v6.1 but both install and uninstall keep hanging. I tried to run them as admin but it doesn't make a difference.
@mstevens83 I've been trying to fix this all week, and after digging through the logs I got it working on my system. Uninstall was failing because the package was never properly installed in "\AppData\Local\Microsoft\WinGet\Packages", and running the installer with the --force flag was hanging immediately after extracting all the data and setting the package data values.
Based on this, I assumed this was, like many weird bugs where Windows hangs in circles, a case of bad registry values triggering a weird loop. I went into the Windows Registry, navigated to "Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall" and deleted the entry associated with ffmpeg.
Ran winget install ffmeg, immediately installed and is working perfectly.
I think it goes without saying that hanging without an error message isn't great, having to go into the Windows registry to fix the error isn't great, and the fact that there isn't a --repair flag I can pass when things seem to be in an invalid state to revalidate and repair isn't great either.
Thanks a lot for digging into this @pikcube! Your solutions work for me. Also, I 100% agree with all the "not great" points raised.
run winget install --id Gyan.FFmpeg
as an admin can add path but other users can't.
this problem exists for years.
hope it can be solved.
In Gyan's manifest (https://github.com/microsoft/winget-pkgs/blob/master/manifests/g/Gyan/FFmpeg/6.1/Gyan.FFmpeg.installer.yaml):
NestedInstallerFiles:
- RelativeFilePath: ffmpeg-6.1-full_build\bin\ffmpeg.exe
PortableCommandAlias: ffmpeg
- RelativeFilePath: ffmpeg-6.1-full_build\bin\ffplay.exe
PortableCommandAlias: ffplay
- RelativeFilePath: ffmpeg-6.1-full_build\bin\ffprobe.exe
PortableCommandAlias: ffprobe
It seems that these configurations just call the winget interface. And it also shows that alias is added every time it is installed. So this may be a problem with winget.
Winget appears to install this, but then seems to immediately forget that it happened. You can install it over and over again. yt-dlp and probably other dependent packages are broken as a result.
Edit: Running winget as admin does NOT help with this, so it's not a #95349 regression.
Can confirm this problem is still present as of now.
Today's update installed fine for me.
Please confirm these before moving forward
Category of the issue
Installation issue.
Brief description of your issue
This issue has been present for months and still has not been fixed.
Gyan.FFmpeg
and several other similar packages (command line tools mostly, I've experienced this witharia2
,rclone
, andnano
) are not functioning because the directory added to the path is the root directory of the package in%LOCALAPPDATA%\Microsoft\WinGet\Packages\<package>
instead of the bin directory/executable or a shortcut to such. For packages where the executable(s) are already in the root directory of the package this works of course (such asyt-dlp
) but all the others I've mentioned have this issue.Steps to reproduce
ffmpeg
Actual behavior
Windows Command Prompt can't find the executable of the program that was just installed. I believe this is because the path is set incorrectly for these packages.
Expected behavior
The package command runs, producing the usual output for that program.
Environment
Screenshots and Logs