広告 MP3、AAC音質関連

macOSショートカットで、FFmpegのAACやMP3エンコーダを選択して音声ファイルを変換するツールの作成

音声ファイルを非可逆圧縮する、FFmpegのエンコーダは、AAC変換用として3種類【 aac_at 】【 libfdk_aac 】【 NativeAAC 】、MP3変換用は1種類の【libmp3lame】がコマンドライン(CLI)で提供されています。 各々のエンコーダはそれぞれに特長(後述)があり、用途に応じて適切なものを選択することがベターです。 

しかし、音声変換するたびにエンコーダを使い分けるとなると、毎回コマンドライン(CLI)でオプションを打ち分けるのは面倒です。 そこで、本記事では、macOSショートカットを活用し、用途に応じて各エンコーダを選択して、且つビットレートも選択できる音声変換するツールを作成してみました。

 

音声ファイルの変換で使うFFmpeg CLI(コマンドライン)と特長

音声ファイルを変換する時に使用する、各エンコーダのCLI(コマンドライン)を下に示します。 (コマンドラインは、ターミナルのzshやbashシェルから実行します)

各エンコーダの詳細を知りたい時は、【 ▶リンク 】をクリックすると、評価記事やCLIのオプション(赤文字で示す)を参照できます。

 command
【 aac_at 】AACエンコーダ   ▶リンク  
ffmpeg -i "変換元ファイル.wav" -acodec aac_at -c:v copy -ar 48000 -ab 320k "変換後のファイル名.m4a" 
【 libfdk_aac 】AACエンコーダ   ▶リンク  
ffmpeg -i "変換元ファイル.wav" -acodec libfdk_aac -c:v copy -ar 48000 -ab 320k -cutoff 20000 "変換後のファイル名.m4a"
【 NativeAAC 】AACエンコーダ   ▶リンク  
ffmpeg -i "変換元ファイル.wav" -aac_coder twoloop -c:v copy -ar 48000 -ab 320k "変換後のファイル名.m4a"
【libmp3lame】MP3エンコーダ   ▶リンク  
ffmpeg -i "変換元ファイル.wav" -codec:a libmp3lame -c:v copy -ar 48000 -b:a 320k "変換後のファイル名.mp3"

 

特長

各エンコーダは、下に示す特長があります。

  1. 【 aac_at 】:macOS限定、劣化量が少ないが、16bit入力なのでCD音源の変換に最適。(cut-off:max22.5khz)
  2. 【 libfdk_aac 】:劣化量が少ないが、16bit入力なのでCD音源の変換に最適。(cut-off:max20khz)
  3. 【 NativeAAC 】:24bit入力なのでハイレゾ24bit音源の変換に対応しているが、劣化量からビットレートを250Kbps以上に設定するのがオススメ(cut-off:max22.5khz)
  4. 【libmp3lame】:24bit入力で、且つ劣化量が少ないので、CD〜ハイレゾ24bitの変換に最適。 (cut-off:max20khz)

 

オペレータ
オペレータ
それでは、「FFmpegのAACやMP3エンコーダを選択して音声ファイルを変換するツール」の作成方法を解説していきます。

 

「音声変換する」ショートカットの概略フロー

Step1:変換元の音声ファイル(wav,flac等々)の複数選択

Step2:選択されたファイルが音声ファイルか判定
(非音声ファイルがあれば停止)

Step3:エンコーダの選択とビットレートの選択

Step4:音声変換(エンコード)の実行

同一フォルダに変換されたファイル(fs=48khz)が保存される。

 

AAC/MP3エンコーダを選択して音声変換するショートカットの作成手順

今回のショートカット名は【FFmpeg AAC / MP3 変換】にしました。

macOSショートカット・アプリを起動して「ファイル」>「新規ショートカット」をクリックすると、まっさらなショートカット編集画面が現れます。 ここに必要なアクションを配置して行きます。  アクション中にあるマジック変数は、これで分かったマジック変数の取扱いを参照してください。

ショートカットの概略フロー(Step1〜Step4)に従って説明していきます。

Step
1
変換元の音声ファイルの複数選択

各アクションの説明

  • 【アラート】アクションこのショートカットで何を行うか?概要をダイアログで説明
  • 【ファイルを選択】アクションFinderが表示され、非可逆圧縮したい、音声ファイルを選択(複数選択可)できます。
  • 【シェルスクリプトを実行】選択した音声ファイルをマジック変数で受取り、2行目のfor文で、選択されたファイルをループして、一つ一つのファイルをffprobeで検査して、非音声ファイルが一つでも含まれると、ループから抜け出し”NOT_AUDIO”の文字列をマジック変数として、出力します。

スクリプト内容

 

Step
2
選択ファイルが音声ファイルか判定

各アクションの説明

  • 【if文】アクション【シェルスクリプトを実行】アクションで出力されたマジック変数を受取り、、”NOT_AUDIO”の文字列の有無を調べて、”NOT_AUDIO”があると、次のアクションが実行されます。 
  • 【アラート】アクション非音声ファイルが含まれている旨のアラートを表示します。
  • 【このショートカットを停止】ショートカットが停止されます。

 

Step
3
エンコーダの選択とビットレートの選択

各アクションの説明

  • 【リスト】アクションエンコーダの4種類を表示
  • 【リストから選択】アクションリストから一つだけエンコーダを選べます。 選ばれたエンコーダの文字列をマジック変数として出力します。
  • 【リスト】アクションビットレートの4種類を表示
  • 【リストから選択】アクションリストから一つだけビットレートを選べます。 選ばれたビットレートの文字列をマジック変数として出力します。

 

Step
4
音声変換(エンコード)の実行

各アクションの説明

  • 【シェルスクリプトを実行】ファイルは、Step1の【ファイルを選択】アクションのマジック変数を指定します。リストから受取った encorder="選択エンコーダ"とbitrate="選択bitrate" マジック変数です。 
    6行目は、for文で、選択された音声ファイルをループさせて、
    8行目は、case文で、選択されたエンコーダに従って分岐させて、同一フォルダ内に音声ファイルを変換しています。 また、変換されたファイルは、ビットレートとエンコーダ名を付記し、エンコーダCLIのオプション -y で、ファイルの上書きを可能にしています。
  • 【アラート】アクション選択した音声ファイルをマジック変数で受取り、ファイルをffprobeで検査して、非音声ファイルが一つでも含まれると、”NOT_AUDIO”の文字列をマジック変数として、出力します。

スクリプトの内容

 

 

作成したショートカットの実行ビデオを観る

 

 音声ファイル変換: Before / After
オリジナルファイル
Handel Violin Sonata No_4 Vn_Grumiau.wav
Handel Violin Sonata No_4 Vn_Grumiau_FLAC.flac
     ↓↓↓↓↓↓↓
[aac_at]で160kbpsに変換後
Handel Violin Sonata No_4 Vn_Grumiau_chg-[aac_at]160k.m4a
Handel Violin Sonata No_4 Vn_Grumiau_FLAC_chg-[aac_at]160k.m4a

 

以上、macOSショートカットで、FFmpegのAACやMP3エンコーダを選択して音声ファイルを変換するツールの紹介でした。 音声ファイルを非可逆圧縮する際に是非、ご活用ください。

 

スポンサーリンク