CouldntDecodeError:解码失败。ffmpeg 返回错误代码:69

2 python ffmpeg python-3.x

在尝试使用audiosegment.from_file(x.mp3)打开 mp3 文件并稍后将其转换为波形格式时audio.export(x.mp3, format='wav'),我面临以下问题Couldnt DecodeError

可能是什么原因造成的?我在用python= 3.9pydub=0.25.1audiosegment=0.23.0

先谢谢您的帮助。以下是控制台上显示的错误。

CouldntDecodeError                        Traceback (most recent call last)
/var/folders/vh/nmgr0zd56yd_vs_56q_jy89c0000gn/T/ipykernel_21698/1373432166.py in <module>
      1 vad=wb.Vad()
      2 filename= '/Users/gulag_dweller/Desktop/Lab_stuff/python_script/Isi_B1.mp3'
----> 3 audio= audiosegment.from_file(filename)
      4 audio_wav= audio.export(filename, format ='wav')
      5 

~/mambaforge/lib/python3.9/site-packages/audiosegment.py in from_file(path)
   1131     _name, ext = os.path.splitext(path)
   1132     ext = ext.lower()[1:]
-> 1133     seg = pydub.AudioSegment.from_file(path, ext)
   1134     return AudioSegment(seg, path)
   1135 

~/mambaforge/lib/python3.9/site-packages/pydub/audio_segment.py in from_file(cls, file, format, codec, parameters, start_second, duration, **kwargs)
    771             if close_file:
    772                 file.close()
--> 773             raise CouldntDecodeError(
    774                 "Decoding failed. ffmpeg returned error code: {0}\n\nOutput from ffmpeg/avlib:\n\n{1}".format(
    775                     p.returncode, p_err.decode(errors='ignore') ))

CouldntDecodeError: Decoding failed. ffmpeg returned error code: 69

Output from ffmpeg/avlib:

ffmpeg version 4.4.1 Copyright (c) 2000-2021 the FFmpeg developers
  built with clang version 11.1.0 
Run Code Online (Sandbox Code Playgroud)

lsc*_*ena 7

我有同样的问题。我读到,在某些情况下,mp3 文件包含 AAC 音频,但容器格式是 mpeg4。

所以,对我有用的解决方案是:

try:
    audio = audiosegment.from_file(filename, "mp3")
except:
    audio = audiosegment.from_file(filename, format="mp4")
Run Code Online (Sandbox Code Playgroud)