広告 MP3、AAC音質関連

MacのショートカットアプリでFFmpegによるAACやMP3への変換作業を自動化する

スポンサーリンク

 

ショートカット

blank

例えば、FFmpegのAAC及びMP3用エンコーダは多数ありその特徴に合わせて一々、ターミナルを介してコマンドラインを実行しなければならず、変換作業が面倒です。 そこで、Macのショートカットアプリでショートカットを作成しておけば変換作業の自動化(アプリ化)が図れます。

Apple公式ショートカット ユーザガイド
URL:https://support.apple.com/ja-jp/guide/shortcuts-mac/apd5ba077760/mac

macOS Montereyから導入されたショートカットアプリは、ユーザーがカスタム ワークフローを作成し、Mac 上のさまざまなタスクを自動化できる強力な自動化ツールです。

今まで当ブログで、AAC変換の作業効率UPのためショートカットやAutomatorを紹介してきましたが、アクションが多く冗長でした。 これを改善しシェルスクリプト(bash+Applescript)一本のプログラムに集約して新たなショートカットを作成しました。

今回は、FFmpegの[aac_at ]エンコーダー(前回記事参照)を使って雛形のショートカットを作成し、複製した雛形を手直しすることで簡単に他のFFmpegエンコーダーにも横展開が出来る手順を紹介します。

なお、多少手直しが必要ですが、Appleのafconvert等のエンコーダへの横展開も可能です。

 

FFmpegのAAC及びMP3用エンコーダについて

FFmpegのコマンドライン AAC及びMP3用エンコーダは、4種類あります。 下に示すように各々に特徴があり、使途に合わせて使い分けするのがベターです。

1) FFmpegエンコーダの特徴
      Cut-Off周波数
48khz 320kbps
   
エンコーダ
記事へリンク
形式 入力bit深度 from
fs=48khz
from
fs=192khz
対応OS FFmpeg公式
品質順位
aac_at AAC 16bit 24khz  22.5khz macOS 1位
libfdk_aac 16bit 20khz 20khz Win macOS 2位
Native AAC 24bit 24khz 22.5khz Win macOS 3位
libmp3lame MP3 24bit 20.2hz 20.2khz  Win macOS

AAC変換の使い分け

  1. CD等の16bit音源をAAC変換する場合、音質順位が高いと言われる【 aac_at  】や【 libfdk_aac 】が最適と思います。
  2. ハイレゾの24bit音源をAAC変換する場合、24bit入力に対応している【 NativeAAC 】が適していますが、音質順位が最も低いので出来だけビットレートを高め250Kbps以上で変換する必要があります。
2) FFmpegのコマンドライン(CLI)
 command
【 aac_at  】
ffmpeg -i "変換元ファイル.wav" -acodec aac_at -c:v copy -ar 48000 -ab 320k "変換後のファイル名.m4a"
【 libfdk_aac 】
ffmpeg -i "変換元ファイル.wav" -acodec libfdk_aac -c:v copy -ar 48000 -ab 320k -cutoff 20000 "変換後のファイル名.m4a"
【 NativeAAC 】
ffmpeg -i "変換元ファイル.wav" -aac_coder twoloop -c:v copy -ar 48000 -ab 320k "変換後のファイル名.m4a"
【libmp3lame】
ffmpeg -i "変換元ファイル.wav" -codec:a libmp3lame  -c:v copy -ar 48000 -b:a 320k "変換後のファイル名.mp3"
このコマンドラインのピンク文字がオプションを示し、サンプルレート48khz、ビットレート320kbps(CBR)、でAAC変換されます。 詳しくは、上表中にある、記事へリンクをクリックして夫夫のエンコーダ記事を参照してください。 また、-c:v copy オプションで、変換元音声ファイルにアートワーク画像があれば、アートワークが継承されま。
3) FFmpeg のインストールについて

コマンドライン(CLI)を実行するには、予めHomebrew を経由して、FFmpegをMaxOSにインストールしておく必要があります。 詳しくは、「FFmpeg libfdk_aacエンコーダをハイレゾピュアー音源で音質評価してみました。」記事を参照してください。

 

ショートカットの雛形作成

今回、雛形として作成するショートカットは、[aac_at]エンコーダにしました。 この雛形ショートカットに倣えば、後述する様に、他のエンコーダも簡単にショートカットを作成出来ます。

ショートカットの基本仕様;
サンプルレートは48khzに統一し、ビットレートが変えられ、複数の音声ファイルを一括変換出来ることとしました。  また、変換後のファイルに、設定されたビットレートとエンコーダ名が付加される様にしました。

 

基本的なガイドは下のカスタムショートカットを作成するのURLリンクをクリックして参照してください。

Apple公式Macでカスタムショートカットを作成する
URL:https://support.apple.com/ja-jp/guide/shortcuts-mac/apd5ba077760/ma

Step
1
ショートカット作成の事前準備

  1. Macのショートカットアプリを開き ファイル > 新規ショートカット を選択します。 空の名称未設定ショートカットがショートカットエディタに表示されます。
  2. 「ショートカット名」をクリックしてから、ショートカットの名前を入力します。 今回の雛形はFFmpegの[aac_at ]エンコーダを使いますので名前を「FFmpeg aac_at with Artwork」にしました。
  3. 右のサイドバーからカテゴリ「スクリプティング」を選択し、表示されるリストで「シェルスクリプトを実行」アクションをダブルクリックします。 ショートカットエディタにドラッグすることもできます。

Step
2
「シェルスクリプトを実行」アクションにコードをコピペ

「シェルスクリプトを実行」のエリアに下のシェルスクリプト(bash+AppleScript)コードをコピペしたスクリーンショット画像です。

「シェルスクリプトを実行」のコード内容

 

コードの説明(黄色のハイライト行)

  • 2行: 変数encoder_nameにエンコーダ名を記述 ここでは[aac_at]としています。
  • 9-25行: ビットレート選択リストダイアログを表示するコード
  • 58-73 行:ファイル選択ダイアログを表示を表示するコード
  • 94-96行: 変換処理の番号ステータスを、notification表示(一瞬画面右に表示される)
  • 103行: FFmpegの[aac_at]コマンドラインを実行するコードです。 変換ファイルの末尾に、変数$selected_optionと$encoder_nameを付加しています。
  • 備考: コード中のosascript <<EOF ~ EOF の部分が、AppleScriptのコードになります。

 

Step
3
テストして成功したらショートカット(雛形)の完成です

このショートカットをテストするには、ショートカットエディタ右上部の[ ▶ ] をクリックします。

下の動画をご覧ください。

 

Finderで下の様にAACファイルが生成されていればショートカットの完成です❗

換元の音源ファイル:
24192k _pink -20db加算.WAV

160kbps設定で生成されたAACファイル:
24192k _pink -20db加算_chg-160k[aac_at].m4a

 

スポンサーリンク

 

 

雛形ショートカットに倣って他のFFmpegエンコーダを組込む手順

Step
1
先ほど作った「FFmpeg aac_at with Artwork」雛形ショートカットを複製します。

  1. 雛形ショートカットの複製
    雛形ショートカットを選択して右クリックして、「複製」と選択すると、雛形ショートカット名の末尾に2が付加されて複製されます。
  2. 複製した「ショートカット」の名称を変更
    複製した「ショートカット」を右クリックしてから、名称変更を選び、FFmpegエンコーダに合う名前(例えば、MP3の[libmp3lame]エンコーダを組込むならFFmpeg libmp3lame with Artwork)に変更します。

Step
2
FFmpegエンコーダを組込むショートカットを作成します。

名称変更した「ショートカット」を選びダブルクリックすると、ショートカットエディタが表示され、「シェルスクリプトを実行」中のコードを下に示す、FFmpeg のエンコーダに合わせる作業を行います。

ショートカットに組込むFFmpegエンコーダ(タブ選択)




ショートカットの名称:
libfdk_aac with Artwork cut-off:20k

コードの変更箇所

「シェルスクリプトを実行」のコード行を下のように2箇所 書換えます。

2行: 変数:encoder_nameにエンコーダ名を記述 ここでは[libfdk_aac]にします。

103行:下の様に[libfdk_aac]エンコーダのコマンドラインに書換えます。 

ーーーーーーーー
以上の書換えが終了したら、前節で行ったテストします。Finderで下の様にAACファイルが生成されていればショートカットの完成です❗

換元の音源ファイル:
24192k _pink -20db加算.WAV

160kbps設定で生成されたAACファイル:
24192k _pink -20db加算_chg-160k[libfdk_aac].m4a

ショートカットの名称:
FFmpeg ACC with Artwork

コードの変更箇所

「シェルスクリプトを実行」のコード行を下のように2箇所 書換えます。

2行: 変数encoder_nameにエンコーダ名を記述 ここでは[NativeAAC]にします。

103行:下の様に[NativeAAC]エンコーダのコマンドラインに書換えます。 

ーーーーーーーー
以上の書換えが終了したら、前節で行ったテストします。Finderで下の様にAACファイルが生成されていればショートカットの完成です❗

換元の音源ファイル:
24192k _pink -20db加算.WAV

320kbps設定で生成されたAACファイル:
24192k _pink -20db加算_chg-320k[NativeAAC].m4a

ショートカットの名称:
FFmpeg libmp3lame with Artwork

コードの変更箇所

「シェルスクリプトを実行」のコード行を下のように2箇所 書換えます。

2行: 変数encoder_nameにエンコーダ名を記述 ここでは[libmp3lame]にします。

103行:下の様に[libmp3lame]エンコーダのコマンドラインに書換えます。 

ーーーーーーーー
以上の書換えが終了したら、前節で行ったテストします。Finderで下の様にMP3ファイルが生成されていればショートカットの完成です❗

換元の音源ファイル:
24192k _pink -20db加算.WAV

160kbps設定で生成されたMP3ファイル:
24192k _pink -20db加算_chg-160k[libmp3lame].mp3


 

完成したショートカット

blank

 

ショートカットを単独で実行できる 実行ファイル(.app)化させるには

作成したショートカットは、Macのショートカットアプリから選択して起動するのは面倒です。 通常のアプリファイルの様にファインダーからダブルクリックして単独で実行できる様にアプリ化するには、

ショートカットを一旦、Dockに入れることで、単独で実行出来る「.app(アプリ)」にできます。 (下の手順参照)

簡単な手順(実行ファイル化)

  • ショートカットを開いて、例えば、先ほど作成した雛形のショートカットにした「FFmpeg aac_at with Artwork」を右クリックして
  • ファイル > Dockに追加 を選択
  • Dockに入れた「FFmpeg aac_at with Artwork」を右クリックして、オプション > Finderに表示 を選択
  • Finderに表示されたファイルを見ると、FFmpeg aac_at with Artwork.app になって、単独で実行できるアプリファイルになります。
  • Dockに追加された、ショートカットが不要なら、オプション > Dockから削除 します。

 

以上、AAC及びMP3 の変換作業を効率化するショートカットの作成紹介でした。 コマンドラインを使った、他のエンコーダへの横展開も可能と思われます。 ご参考にして頂ければと思います。

 

t