pythonを使って、コマンドラインで簡単に、フォルダ内の動画ファイル(mp4)を、音声ファイル(mp3)に一括変換できるプログラムを作りました
の続きなので、上記で必要なプラグインなどをインストールした後に行ってください
実行するコマンド
$ # フォルダ内一括置換の場合 $ python convert.py mp3 {変換元ファイルのディレクトリ} {出力先ディレクトリ} $ # 1ファイルのみの変換の場合 $ python convert.py mp3 {変換元ファイルパス} {出力先ディレクトリ}
用意するプログラムファイル(convert.py)
import os import sys import subprocess as sp import glob output_extension = sys.argv[1] path = sys.argv[2].replace('\\', '/') output_dir = sys.argv[3].replace('\\', '/') # 末尾のスラッシュ「/」を削除する if (output_dir[-1] == '/'): output_dir = output_dir[:-1] if (path[-1] == '/'): path = path[:-1] def convert(input_file, output_extension, output_dir): # ディレクトリ作成 os.makedirs(output_dir, exist_ok=True) file_name = os.path.splitext(os.path.basename(input_file))[0] output_file_path = output_dir + '/' +file_name + '.'+output_extension cmd_list = ['ffmpeg', '-i', input_file, output_file_path] cmd = ' '.join(cmd_list) print(cmd) sp.call(cmd, shell=True) if os.path.isdir(path): # ディレクトリの場合 files = glob.glob(path+'/*') for file in files: tmp = file.replace('\\', '/').split('/') input_file = path + '/' + file.replace('\\', '/').split('/')[len(tmp) - 1] convert(input_file, output_extension, output_dir) else: # ファイルの場合 input_file = path convert(input_file, output_extension, output_dir)