프로그래밍/Python

[Python] 여러 개의 오디오 파일을 하나의 오디오 파일로 (pydub)

DefineJH 2023. 5. 6. 11:49

 

여러개의 오디오 파일을 하나의 파일로 합치고 싶을 때가 있다.

 

그 경우에는 pydub 패키지를 이용해서 이를 합칠 수 있다.

 

일단 pip를 이용해 pydub을 설치하자

 

pip install pydub

예를 들면 a.mp3 파일과 b.mp3 파일을 combined.mp3 파일로 합치고 싶을때 아래와 같은 코드를 사용한다.

from pydub import AudioSegment

def combine_mp3_files(input_files, output_file):
    combined_audio = None
    for file in input_files:
        audio = AudioSegment.from_mp3(file)
        if combined_audio is None:
            combined_audio = audio
        else:
            combined_audio += audio
    combined_audio.export(output_file, format="mp3")

input_files = ["a.mp3", "b.mp3"]
output_file = "combined.mp3"
combine_mp3_files(input_files, output_file)

 

하지만 가끔 파일을 찾을 수 없다며 WinError2 를 반환할 때가 있는데, 이럴 때를 위해 이 포스트를 작성하였다.

 

다음 과정을 체크하자.

 

1. 파일 경로가 정확한지
2. ffmpeg 가 PC에 존재하고 환경변수에 이를 등록하였는지

1의 경우, 당연히 파일의 경로가 정확하지 않으면 아래와 같은 에러가 발생할 것이다.

 

하지만 경로가 정확한데도 불구하고 실행이 되지 않는다면 ffmpeg가 존재하는지 확인해보자.

 

pydub은 ffmpeg 혹은 avconv 라는 미디어 변환 오픈소스를 기초해 만들어져 있어 사용자의 pc에 둘 중 하나가 없을 시,

ffmpeg 혹은 avconv 프로그램의 파일을 찾을 수 없어 WinError2를 반환할 때가 있다.

 

/https://ffmpeg.org/

 

FFmpeg

Converting video and audio has never been so easy. $ ffmpeg -i input.mp4 output.avi     News February 28th, 2023, FFmpeg 6.0 "Von Neumann" A new major release, FFmpeg 6.0 "Von Neumann", is now available for download. This release has many new encoders an

ffmpeg.org

 

위 사이트에서 ffmpeg를 다운받고 bin까지 의 경로를 환경변수의 PATH에 추가 후 재부팅을 하면 해결될 것이다.

반응형