另一个解决方案对我不起作用。对我来说,问题是ffmpegAnaconda随附的版本似乎未使用编码器进行编译。所以代替:
DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float mp3_at ) (encoders: libmp3lame )
我看见:
DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float mp3_at )
没有(encoders: ...)一部分。
我的解决方案是这样做:
ffmpeg -codecs | grep mp3,以检查是否有编码器(没有!)。conda uninstall ffmpegbrew install ffmpeg --with-libmp3lameffmpeg -codecs | grep mp3,以检查是否有编码器(现在有!)。ffmpeg -codecs您可以使用或找到可用的编解码器,avconv -codecs并且在mp3您会看到类似以下内容的行:
DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float mp3_at ) (encoders: libmp3lame )\nRun Code Online (Sandbox Code Playgroud)\n\nD表示 ffmpeg 可以解码
\nE表示它可以编码
\nA表示它是音频编解码器
\nL表示它是有损编码
但最重要的部分是encoders: \xe2\x80\xa6部分
我认为您需要选择列出的编码器之一并告诉 pydub 使用它(我不确定为什么,我的机器不需要这 - 但这可能取决于您的 ffmpeg 安装)
\n\nfrom pydub import AudioSegment\nsound = AudioSegment.from_file(\xe2\x80\xa6)\nsound.export("/path/to/output.mp3", codec="libmp3lame")\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
3294 次 |
| 最近记录: |