У меня аналогичная проблема на Python 3.8.7, и я не могу найти решение.
В своем проекте я использую pydub.AudioSegment для получения звука из файла, а затем экспортирую этот звук в другой формат. Мой код отлично работает, когда я запускаю файл python напрямую. Однако, когда я конвертирую его в исполняемый файл с помощью pyinstaller, запускаю программу и дохожу до импорта звука с помощью pydub, это дает мне следующую ошибку:
Traceback (most recent call last):
File "main.py", line 269, in <module>
File "main.py", line 213, in convertfile
File "main.py", line 133, in cloud_upload
File "pydub\audio_segment.py", line 728, in from_file
File "pydub\utils.py", line 274, in mediainfo_json
File "subprocess.py", line 804, in __init__
File "subprocess.py", line 1142, in _get_handles
OSError: [WinError 6] The handle is invalid
Вызов pydub в моей программе выглядит так:
sound = AudioSegment.from_file(filepath)
sound.export(new_filepath, format="ogg",codec='libopus')
Я пытался добавить stdin = subprocess.DEVNULL и stdin = subprocess.PIPE в utils.py в строке 274, но это тоже не сработало. Возможно, я добавил их неправильно, поэтому такие предложения также приветствуются.
export
пытается вызвать ffmpeg черезsubprocess
. Можете ли вы вручную добавитьshell=True
в эту строку: github.com/ jiaaro / pydub / blob / master / pydub / audio_segment.py # L963 - person Dimitar   schedule 11.04.2021ffmpeg
на моем пути, единственное отличие состоит в том, что я не указал кодек при экспорте. Использование python 3.9.1, pydub 0.25.1 и pyinstaller 4.2 - person Dimitar   schedule 12.04.2021