-
Notifications
You must be signed in to change notification settings - Fork 653
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Torchaudio is not detecting FFmpeg #3789
Comments
Loading manullay the binaries is working but, I would like it was automatic. ctypes.CDLL('C:/Program Files/ffmpeg/bin/avcodec-60.dll')
ctypes.CDLL('C:/Program Files/ffmpeg/bin/avdevice-60.dll')
ctypes.CDLL('C:/Program Files/ffmpeg/bin/avfilter-9.dll')
ctypes.CDLL('C:/Program Files/ffmpeg/bin/avformat-60.dll')
ctypes.CDLL('C:/Program Files/ffmpeg/bin/avutil-58.dll') I still don't know why it is not working without preloading libraries. |
If I locate the libraries in the same folder of EDIT: I have been checking the internal code and in file if os.name == "nt" and (3, 8) <= sys.version_info < (3, 9):
_init_dll_path() This code adds the paths from Thank you. |
Ran into this same unexpected behavior as well. If _init_dll_path() is allowed to run it works as expected |
Same problem here, struggling for hours. Win 11, Python 3.12.4, using pip, ffmpeg 6.1.2 with shared libraries, path OK, can run on CMD, restarted multiple times, etc... Using ctypes.CDLL workaround also did not work in my case. Only "soundfile" can be used. os.add_dll_directory("C:\\Programs\\ffmpeg-6.1\\bin\\") PS: I'm trying to convert my code to use torch/torchaudio. Before torchaudio I've been using PyAV without any problems - using ffmpeg for a decade. torchaudio's ffmpeg documentation is also very cryptic. As far as I can see, torchaudio moved to ffmpeg as the main cross-platform library, but still too many problems. |
Hi HarikalarKutusu, do you have all the required ffmpeg DLL files? In my case I need all of these for ffmpeg to be detected, in addition to executing _init_dll_path from the file modified in torchaudio:
Using the dlls from this ffmpeg shared build: https://github.com/GyanD/codexffmpeg/releases/tag/6.1.1 |
I used I did not update the _init_dll_path directly in tourchaudio distribution, but used
Let me try the one from your link... |
Joy! I was wrong.
Also changed the v3.8 limitation code to be safe. # if os.name == "nt" and (3, 8) <= sys.version_info < (3, 9):
# _init_dll_path()
if os.name == "nt" and (3, 8) <= sys.version_info < (3, 99):
_init_dll_path() It now works. Thank you for the guidance @chislonchow ! |
🐛 Describe the bug
Hi everyone,
I am trying to use torchaudio with FFmpeg but for some reason it is not being detected.
I added the path 'C:\Program Files\ffmpeg\bin' to the PATH environment variable. As you can see I can execute ffmpeg from cmd. However, when I execute
torchaudio.list_audio_backends()
only 'soundfile' is detected. I tested this in a Python PIP (I can't use conda) virtual environment with version 3.10 and in another one with version 3.12 but, it didn't work in both. Torchaudio and torch versions are2.2.1
. I don't know if it is a problem with version compatibility but in the official documentation I saw ffmpeg 6 is supported and I checked the code which tries to load the libraries.I checked a lot of related issues but I couldn't find the right solution.
Any suggestions are welcome!
Thanks.
Versions
The text was updated successfully, but these errors were encountered: