2017-05-18 14 views
2

내가 pydub에 MP3와 같은 파일을 내보내려고 해요,하지만 난이 오류를 얻을 : 내가 수동 인코더를 선택하려면 어떻게Pydub 수출 오류 - 인코더를 선택하여 수동으로

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

를 기본 인코더 것입니다 어떻게 활성화시킬 수 있습니까?

추신 : 내 Pydub는 아무 문제없이 mp3 파일을 엽니 다. 나는 Windows와 Libav를 사용하고 있습니다. 당신이 ffmpeg -codecs 또는 avconv -codecs로하고 같은 것을 볼 수 mp3와의 통화를 사용할 수있는 코덱을 찾을 수 있습니다

+0

가능한 복제본 https://stackoverflow.com/questions/20443850/error-when-exporting-with-pydub-how-to-install-mp3-codecs-for-pydub#20445742 파일을 인코딩 할 수 있도록 인코딩을'wav' 파일로 시도 했습니까? mp3 코덱이 설치되어 있는지 확인하십시오. – NuclearPeon

+0

예, wav로 내 보냅니다. 그리고 mp3를로드합니다. –

+1

mp3를 재생하려면 디코더가 필요하지만 mp3를 쓰려면 인코더가 필요합니다. 어떤 OS를 사용하고 있으며 MP3 인코더는 무엇입니까? 여러분은'ffmpeg','gstreamer','우분투 제한 코덱', 등을 사용하고 있습니까? Mac/Linux/Windows의 Lame (mp3 encoder) 소스를 다운로드하고 컴파일 할 수 있습니다 : http : //lame.sourceforge .net/download.php. – NuclearPeon

답변

1

:

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

D이는 FFmpeg은
E 그것을 인코딩 할 수 있습니다 의미 디코딩 할 수 있음을 의미
A 오디오 코덱을 의미합니다.
L은 손실이있는 인코딩을 의미합니다.

이는 필요하지 않습니다 이유

하지만 가장 중요한 부분은 잘 모르겠어요 (난 당신이 나와있는 인코더 중 하나를 선택하고 그것을 사용하는 pydub 말할해야합니다 생각 encoders: … 부분

내 컴퓨터 -하지만 아마도 당신의 ffmpeg 설치에 따라 달라집니다)

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

나는 ffmpeg가 있다고 생각하지 않는다 .... 나는 libav를 사용하여 pydub documentaion에서 언급 된 대체 설치를 따른다 .... –

+0

@ Daniel 내 대답은 libav 명령도 포함하도록 업데이트했습니다. – Jiaaro

+0

인코더가 없습니다 .... –

1

다른 해결책은 나를 위해 작동하지 않았다. 저를위한 문제는 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, 확인 (이되지 않음!).
  • conda uninstall ffmpeg
  • 새 터미널 창을여십시오.
  • ffmpeg -codecs | grep mp3 인코더가 있는지 확인하십시오 (현재 있습니다!).