Python读取音频时长 报错 File contains data in an unknown format.

1.遇到问题

"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.解决办法

 librosa 库依赖ffmpeg.

 下载安装ffmpeg ,并且把bin 目录路径添加到环境变量中。

  在安装python环境下找到

 修改里面的


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

猜你喜欢

转载自blog.csdn.net/beautifulYuan/article/details/122997827