Search code examples
pythonaudiomp3encoderpydub

Pydub export error - Choose encoder manually


I'm trying to export a file as mp3 in pydub, but I get this error:

Automatic encoder selection failed for output stream #0:0. Default encoder for format mp3 is probably disabled. Please choose an encoder manually

How do I select an encoder manually, what is the default encoder, and how could I enable it?

PS: My Pydub opens mp3 files without any problem. I'm using Windows and Libav.


Solution

  • you can find which codecs are available with ffmpeg -codecs or avconv -codecs and on the line with mp3 you'll see something like:

    DEA.L. mp3                  MP3 (MPEG audio layer 3) (decoders: mp3 mp3float mp3_at ) (encoders: libmp3lame )
    

    D means ffmpeg can decode
    E means it can encode
    A means it's an audio codec
    L means it's a lossy encoding

    but the most important part is the encoders: … portion

    I think you'll need to pick one of the encoders listed and tell pydub to use it (I'm not sure why, this isn't required on my machine - but it probably depends on your ffmpeg installation)

    from pydub import AudioSegment
    sound = AudioSegment.from_file(…)
    sound.export("/path/to/output.mp3", codec="libmp3lame")