概要
このPythonスクリプトは、ffmpeg
を使用して指定されたフォルダ内のすべてのMP3ファイルのビットレートを変更して圧縮するプログラムです。
以下にスクリプトの主な部分を説明します。
-
TARGET_DIR
: MP3ファイルを検索する対象のフォルダを指定します。デフォルトでは./mp3/
に設定されています。 -
OUTPUT_DIR
: 出力されるファイルの保存先フォルダを指定します。デフォルトでは./output/
に設定されています。 -
BIT_RATE
: 変換後のMP3ファイルのビットレートを指定します。デフォルトでは"96k"に設定されています。 -
files
:TARGET_DIR
内のすべての.mp3
拡張子を持つファイルのリストを取得します。 -
for
ループ: 各MP3ファイルについて以下の処理を行います。-
ffmpeg
コマンドを生成します。このコマンドは、入力ファイルとして現在のMP3ファイル、指定されたビットレート、および出力フォルダに保存するファイル名を含みます。 - 生成された
ffmpeg
コマンドを表示します。 -
subprocess.run
を使用してffmpeg
コマンドを実行します。
-
このスクリプトを実行すると、指定されたフォルダ内のすべてのMP3ファイルがOUTPUT_DIR
で指定されたフォルダに変換され、ビットレートが指定された値になります。
ファイル構成
/自分で決めたフォルダ名/
L /mp3/*.mp3
L /outuput/
L /mp3.py
pythonプログラム
mp3.py
import glob
import os
import subprocess
# 検索フォルダ(と拡張子).
TARGET_DIR = "./mp3/"
# 出力フォルダ.
OUTPUT_DIR = "./output/"
# ビットレート.
BIT_RATE = "96k"
# 指定フォルダのmp3ファイルをリストアップ.
files = glob.glob(os.path.join(TARGET_DIR, '*.mp3'))
for file in files:
cmd = [
"ffmpeg",
"-i",
file,
"-b:a",
BIT_RATE, # ビットレート.
os.path.join(OUTPUT_DIR, os.path.basename(file)), # outputフォルダに出力
]
print(cmd)
subprocess.run(cmd)
以下のコマンドをターミナルで実行すればOKです。
python3 mp3.py