![見出し画像](https://assets.st-note.com/production/uploads/images/46682258/rectangle_large_type_2_ae3c90f002ca5134e7fe66fe893f086c.png?width=1200)
音楽アプリ nana 用に音源を最速で変換するバッチファイルを作った話
以前「音楽アプリ nana 用の音源変換サービスを作った話」という記事を投稿しましたが、CUI の操作や環境変数の設定がわかる方はこちらの方法の方が早いので、Windows 版と Mac 版に分けて解説したいと思います。
nana 用変換バッチファイルの作り方(Win 編)
まずは FFmpeg というソフトをこちらのサイトにしたがって、ダウンロード・インストールします。
インストールと環境変数(PATH)の設定が完了したら、以下のようなバッチファイを作成します。
win_nana_convert.bat (任意のファイル名.bat)
@echo off
set /p START="START TIME(00:00:00):"
set /p END="END TIME(00:00:00):"
ffmpeg -y -i %1 -ss %START% -to %END% -ac 1 -ar 44100 -acodec pcm_s16le %~n1.wav
使い方の解説
① トリミング・変換したい音源をバッチファイルにドラッグ&ドロップすることによって、引数として渡します。
② コマンドプロンプトが開いて開始時間(START TIME)と終了時間(END TIME)が要求されるので、(時間):(分):(秒) の形式で入力します。
③ 指定フォーマット・時間通りの .wav ファイルが生成されれば成功です。
※補足
元々トリミングされた 90 秒以内のファイルをそのまま変換したい場合、以下のようなバッチファイルを作成すれば一発で変換できます。
@echo off
ffmpeg -y -i %1 -ac 1 -ar 44100 -acodec pcm_s16le %~n1.wav
FFmpeg は他に音量調整なども対応しているで、よく使うコマンドを調べてバッチファイルにまとめておくと便利です。
nana 用変換バッチファイルの作り方(Mac 編)
残念ながら Mac では、 Windows のバッチファイルのようなドラッグ&ドロップ引数を取得することはできません。なので、音源変換用のディレクトリを作成し、その階層でバッチファイルを実行することで、同ディレクトリに置かれた音源を変換する、という手法をとります。
Mac には afconvert と呼ばれるオーディオフォーマット変換ソフトがデフォルトでインストールされているので、「QuickTime で音源を開いて ⌘T でトリミングし、afconvert を用いたバッチファイルで変換」という手段が早いと思います。
mac_nana_convert.command(任意のファイル名.command)
cd `dirname $0`
for f in $(ls ./); do afconvert -f WAVE -d LEI16@44100 -c 1 $f; done
カレントディレクトリを作業ディレクトリとして指定し、その階層の全てのファイルに対して afconvert で指定フォーマットに変換するというスクリプトです。トリミングはできませんが、もっと早い方法があればコメントで教授いただけたら幸いです!
使い方の解説
作成した mac_nana_convert.command のファイルと、変換したいオーディオファイルを同じディレクトリに置きます。
バッチファイルをダブルクリックするとターミナルが一瞬起動し、指定フォーマットの wav ファイルが生成されます。
※補足
Win 編で紹介した FFmpeg も Mac に対応しているので、こちらのサイトに従ってインストール&環境変数設定すれば Windows 同様に利用することができます。
また、ドラッグ&ドロップでファイルを引数として渡すことは Mac ではできないので、
cd `dirname $0`
for f in $(ls ./); do (ffmpeg の処理) -c 1 $f; done
のような処理で対応できると思います(実験してません)。
おわりに
最後まで読んでいただき、ありがとうございました。簡単な説明でしたが、お役に立てれば幸いです。