我正在尝试将文件导出为pydub中的mp3,但我收到此错误:
输出流#0:0的自动编码器选择失败。格式mp3的默认编码器可能已禁用。请手动选择编码器
如何手动选择编码器,默认编码器是什么,以及如何启用它?
PS:我的Pydub打开mp3文件没有任何问题。我正在使用Windows和Libav。
答案 0 :(得分:3)
另一种解决方案对我不起作用。对我来说问题是,与Anaconda一起安装的ffmpeg
版本似乎没有用编码器编译。所以而不是:
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
,检查是否有编码器(没有#!t。)。conda uninstall ffmpeg
brew install ffmpeg --with-libmp3lame
ffmpeg -codecs | grep mp3
,检查是否有编码器(现在有!)。答案 1 :(得分:2)
您可以找到ffmpeg -codecs
或avconv -codecs
可用的编解码器,并在mp3
的行中找到类似的内容:
DEA.L. mp3 MP3 (MPEG audio layer 3) (decoders: mp3 mp3float mp3_at ) (encoders: libmp3lame )
D
表示ffmpeg可以解码
E
表示它可以编码
A
表示它是一个音频编解码器
L
表示这是一种有损编码
但最重要的部分是encoders: …
部分
我想你需要选择一个列出的编码器并告诉pydub使用它(我不知道为什么,这在我的机器上不是必需的 - 但它可能取决于在你的ffmpeg安装上)
from pydub import AudioSegment
sound = AudioSegment.from_file(…)
sound.export("/path/to/output.mp3", codec="libmp3lame")
答案 2 :(得分:2)
我遇到了与Emiel相同的问题,其中Anaconda中可用的<DirectoryRef Id="TARGETDIR">
<Component Id="DisableWeakCipherSuites" Guid="7DBE2D50-3C00-4CEF-86CC-897C0C96E7FF" KeyPath="yes">
<RegistryKey Key="SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128" Root="HKLM" Action="createAndRemoveOnUninstall">
<RegistryValue Name="Enabled" Value="0" Type="integer" />
</RegistryKey>
<RegistryKey Key="SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\Triple DES 168" Root="HKLM" Action="createAndRemoveOnUninstall">
<RegistryValue Name="Enabled" Value="0" Type="integer" />
</RegistryKey>
<RegistryKey Key="SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 128/128" Root="HKLM" Action="createAndRemoveOnUninstall">
<RegistryValue Name="Enabled" Value="0" Type="integer" />
</RegistryKey>
<RegistryKey Key="SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128" Root="HKLM" Action="createAndRemoveOnUninstall">
<RegistryValue Name="Enabled" Value="0" Type="integer" />
</RegistryKey>
</Component>
</DirectoryRef>
版本确实具有mp3编码器。我通过从ffmpeg
频道安装ffmpeg
的{{3}}来解决了这个问题。我用过:
conda-forge
现在使用conda install -n <anaconda-env> -c conda-forge ffmpeg
会显示mp3编码器:
ffmpeg -codecs | grep mp3