Python reports an error when reading audio duration. File contains data in an unknown format.

1.Encounter a problem

"D:\Program Files\pythonProject1\Scripts\python.exe" C:/Users/Administrator/PycharmProjects/pythonProject1/test_dura.py
Traceback (most recent call last):
  File "D:\Program Files\pythonProject1\lib\site-packages\librosa\core\audio.py", line 713, in get_duration
    return sf.info(filename).duration
  File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 438, in info
    return _SoundFileInfo(file, verbose)
  File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 383, in __init__
    with SoundFile(file) as f:
  File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 629, in __init__
    self._file = self._open(file, mode_int, closefd)
  File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 1183, in _open
    _error_check(_snd.sf_error(file_ptr),
  File "D:\Program Files\pythonProject1\lib\site-packages\soundfile.py", line 1357, in _error_check
    raise RuntimeError(prefix + _ffi.string(err_str).decode('utf-8', 'replace'))
RuntimeError: Error opening 'D:\\123\\889202111_3\\20211101\\1635731427141000000000334953_APZ-20210831-001-011720_8001147425_15720306975_20211101095027_1029.mp3': File contains data in an unknown format.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "C:\Users\Administrator\PycharmProjects\pythonProject1\test_dura.py", line 25, in <module>
    main()
  File "C:\Users\Administrator\PycharmProjects\pythonProject1\test_dura.py", line 9, in main
    durationTime = librosa.get_duration(filename=path)
  File "D:\Program Files\pythonProject1\lib\site-packages\librosa\util\decorators.py", line 88, in inner_f
    return f(*args, **kwargs)
  File "D:\Program Files\pythonProject1\lib\site-packages\librosa\core\audio.py", line 715, in get_duration
    with audioread.audio_open(filename) as fdesc:
  File "D:\Program Files\pythonProject1\lib\site-packages\audioread\__init__.py", line 116, in audio_open
    raise NoBackendError()
audioread.exceptions.NoBackendError

2.Solution

 The librosa library depends on ffmpeg.

 Download and install ffmpeg, and add the bin directory path to the environment variable.

  Found in the python installation environment

 Modify inside


#COMMANDS = ('ffmpeg', 'avconv')
COMMANDS = ('D:/learn/ffmpeg-N-102014-gda6e137cb6-win64-gpl-shared/ffmpeg-N-102014-gda6e137cb6-win64-gpl-shared/bin/ffmpeg.exe', 'avconv')

Guess you like

Origin blog.csdn.net/beautifulYuan/article/details/122997827