[Python]오디오 파일 형식 변환

Jae Gyeong Lee·2023년 10월 11일

오디오 파일 형식 변환

  • ffmpeg, pydub

1. ffmpeg

: 동영상/오디오 조작 multimedia framework

ffmpeg 설치

quick start

사용법

2. pydub

from pydub import AudioSegment

sound = AudioSegment.from_file("input-file.mp3")
sound.export("output-file.aac", format="aac", bitrate="128k")

https://audiosegment.readthedocs.io/en/latest/audiosegment.html

활용

# pip install pydub; http://pydub.com/, https://github.com/jiaaro/pydub/
# install ffmpeg; https://angelplayer.tistory.com/351; http://www.ffmpeg.org/general.html#File-Formats

# pydub 사용 전, ffmpeg 환경변수 설정 필요

from pydub import AudioSegment
#from pydub.playback import play
import sys


def mp3_2_wav(input_file, output_extension):
    sound = AudioSegment.from_mp3(input_file)
    #play(sound)
    sound.export(output_file_name + '.' + output_extension, format = output_extension)

def mp3_2_opus(input_file, output_extension):
    sound = AudioSegment.from_mp3(input_file)
    sound.export(output_file_name + '.' + output_extension, format = output_extension)
    
def mp3_2_aac(input_file, output_extension):
    sound = AudioSegment.from_mp3(input_file)
    sound.export(output_file_name + '.' + output_extension, format = 'adts') #https://github.com/jiaaro/pydub/issues/363
    

if __name__ == '__main__':

    input_file = sys.argv[1]
    input_file_name = input_file.split('.')[0]
    input_extension = input_file.split('.')[-1]

    output_file_name = input_file_name
    output_extension = sys.argv[2]
    
    if input_extension == 'mp3':
        if output_extension == 'wav':
            mp3_2_wav(input_file, output_extension)        
        elif output_extension == 'opus':
            mp3_2_opus(input_file, output_extension)
        elif output_extension == 'aac':
            mp3_2_aac(input_file, output_extension)
profile
안녕하세요 반갑습니다. 공부한 내용들을 기록하고 있습니다.

0개의 댓글