Pythonから外部のコマンドラインツールを使う(.aacをmp3に変換する)

■必要な環境
ffmpegがインストールされていることを確認。subprocessで呼び出しています。
pydubとその依存関係(ffmpeg)が必要。

まだインストールしていない場合は、以下でインストールできます。
[ffmpegのインストール]
・MacOSやLinuxではbrew install ffmpegまたはsudo apt install ffmpegでインストールできます。
・Windowsの場合では、ffmpeg公式サイトからインストールしてください。

[pydubのインストール]
・pip install pydub

これで、ffmpegを使って.aacファイルを.wavに変換し、その後pydubで.mp3に変換する一貫したプロセスが実行できます。

----
import subprocess
from pydub import AudioSegment
import os

# 入力と出力のファイルパスを設定
input_file = "sample.aac"  # 変換したいAACファイルのパス
wav_file = "sample.wav"  # 一時的なWAVファイルのパス
output_file = "sample.mp3"  # 変換後のMP3ファイルのパス

# 1. ffmpegでAACからWAVに変換
subprocess.run(['ffmpeg', '-i', input_file, wav_file])

# 2. WAVファイルをMP3に変換
audio = AudioSegment.from_file(wav_file, format="wav")
audio.export(output_file, format="mp3")

print("変換が完了しました:", output_file)

# 一時的なWAVファイルを削除
os.remove(wav_file)
----

[学習のまとめ]
subprocess.run()を使うことで、Pythonから外部のコマンドラインツール(例えば、ffmpegやlsコマンドなど)を実行することができます。これにより、Pythonコード内でシステムのコマンドを直接呼び出すことができます。

[ffmpegの活用例]
1)ffmpeg -i input.aac output.wav
2)ffmpeg -i input.aac output.mp3

3)ffmpeg -i input.aac -map 0 output.wav -map 0 output.mp3
1),2)を1行で行う。

4)ffmpeg -i input.aac -map 0 output.wav -map 0 output.mp3 && rm output.wav
1),2)を1行で行い、output.wavを削除する。