FFmpegでACC変換する時に自動的にArtwork画像が継承されるmacの「ショートカットApp」の作成

スポンサーリンク

 

アートワーク付きのハイレゾ音源をFFmpegでAAC変換すると、タグ情報(タイトルやアーティスト等)は引き継がれますが、残念なことにアートワーク画像が引き継がれません。

前回記事で「FFmpegでAAC変換する時にArtwork(画像)を引き渡す方法 」を紹介しました。 この方法はターミナルに手動で多種類のコマンドラインを操作するので作業が煩雑で非効率す。

今回はmacOSの「ショートカットApp(又はAutomatorでもOK)」を使ってコマンドライン入力作業を自動化する方法の紹介です。 合わせて、ハイレゾ音源をAAC変換した時、CDを凌ぐ音質が実現されているか?も合わせて評価しました。

 

作成した「ショートカットApp」の起動からAAC変換まで(動画)

この動画は、「ショートカットApp」で作成したファイル名「FFmpeg AAC with Artwork」の起動からAAC変換・完了までのスクリーン動画(44秒間)です。

AAC変換が完了した後、Finderのアイコン表示で確認したのが下のスクショです。 Artwork付きの音声ファイル(wav)が自動的にArtwork画像が継承されたAACファイル(m4a)が生成されています。

 

作成したショートカットAppの仕様(概要)について

今回作成するショートカットAppは、FFmpegとAtomicParsleyのコマンドラインを使用しますので、事前インストールが必要です。 詳しくは下のブログ記事を参照してください。

 

仕様項目 内容
「ショートカット」の名称 FFmpeg AAC with Artwork
AACエンコーダ FFmpegのNativeAAC
(libfdk_aacエンコーダは16bit入力で歪率的に不利になるのでNativeAACを採択しています)
ビットレート 320kbos、256kbps,160kbps,128kbpsのリスト中から選択可
(CBR設定で設定していますが、256kbps以上はVBRになります)
サンプルレート 48khz固定
変換元の対応フォーマット wav,flac,等FFmpegに準じます。
音声ファイルは複数選択でき、一括でAAC変換できます
AAC変換後のファイル名 変換元のファイル名の後ろに「320k〜128k_FFmpeg_chg.m4a」が追記されます。
Artwork引渡し方法 AtomicParsley CLIプログラムを使用

 

オペレータ
それでは、ショートカットAppによる「FFmpeg AAC with Artwork」ショートカットを作成して行きますね。

 

「FFmpeg AAC with Artwork」ショートカット・作成(手順)

macOSのLaunchpadから「ショートカットApp」を開きます。 ファイル > 新規ショートカット を選択しショートカット名の欄に「FFmpeg AAC with Artwork」と記入します。

アクションの選択と説明

ヒント:右の検索窓にアクション名を入れると簡単に目的のアクションが見つかります。

  • ACTION-1:

    アクションの中から「AppleScriptを実行」を選択して「ショートカットエディタ」エリアにドラッグアンドドロップします。

    AppleScriptのエディタエリアのデフォルトコード(on run .......)を全て削除して下のコードをコピペします。

    Scriptのポイント説明

    1行目〜6行目:「FFmpeg AAC with Artwork」の概要説明ダイアログを表示するコードです。

    8行目〜16行目:ビットレート選択リストダイアログを表示するコードです。

    ビットレート(320k〜128k)を選択して、「音声ファイル選択へ」ボタンが押されると
    19行目のコードで、選択されたビットレートデータ(320k〜128k)をクリップボードに渡し、次のアクションに続きます。

    「AAC変換をキャンセル」ボタンが押されると、
    15行目のコードが実行されて下のダイアログが表示されます。
    【OK】ボタンが押されると「ショートカットApp」のアクションが終了します。


  • ACTION-2:

    アクションの中から「ファイルを選択」を選択して「ショートカットエディタ」エリアにドラッグアンドドロップします。

    このアクションが実行されると、Finderが表示されて、AACに変換する音声ファイルが(複数)選択できます。


  • ACTION-3:

    アクションの中から「通知を表示」を選択して「ショートカットエディタ」エリアにドラッグアンドドロップします。  通知の内容に「AAC変換が開始されました!」に書き換えます。 また、タイトルを「AAC変換 開始!!」にします。

    このアクションが実行されると、macOS画面の右から通知が表示され、通知サウンドが鳴ります


  • ACTION-4:

    アクションの「シェルスクリプトを実行」を選択して「ショートカットエディタ」エリアにドラッグアンドドロップします。

    オプションは上の設定にして、bash Scriptのエディタエリアのデフォルトコード(echo....)を全て削除して下のコードをコピペします。

    Scriptのポイント説明

    5行目:クリップボードにコピーしたビットレート・データをbpsにセットするコードです。 17行目:選択された音声ファイルをbpsで示されるビットレートでAAC(m4a)に変換するコマンドラインコードです。 ffmpegのCLIが在る絶対アドレスでコマンドラインを実行しています。 35、38行目:抽出したArtworkファイルを、AtomicParsleyのCLIが在る絶対アドレスで、AAC変換したフィルに追加するコマンドラインを実行しています。 38行目でも同じコマンドラインを繰り返しているのは、overWriteミスを防ぐためです。 50行目:AppleScriptのalert dialog を呼び出しています。

    以上で「FFmpeg AAC with Artwork」ショートカットの完成です。


 

作成したショートカットの動作確認とアプリ化

動作確認

適当な(出来るだけ再生時間の短い)Artwork付きの音声ファイル(wav or flac)を用意しておきます。

「ショートカットエディタ」画面の右上の ▶ マークをクリックすると「FFmpeg AAC with Artwork」ショートカットが起動してACTION-1〜4が実行されます。 ACTION-2「ファイルを選択」が実行されるとFinderが開きますので、用意した音声ファイルを選択してAAC変換します。 

ショートカットACTIONが終了したら、FinderでAAC変換されたAAC(m4a)ファイルを探し、Artworkの継承の有無を確認します。 変換されたAACファイルは「Tag Editor Free」アプリ でArtworkを確認するか、Finderで変換されたAACファイルがArtworkと同じiconが表示されていればOKです。

 

ショートカットのアプリ化

動作確認ができたら、ショートカット「FFmpeg AAC with Artwork」に拡張子.appがついた、自己実行型のアプリ(FFmpeg AAC with Artwork.app)にしましょう。

タスクバーの ファイル > Dockに追加 を選択します。 

すると、Dockに「FFmpeg AAC with Artwork」が追加されますので、右クリックで、オプション > Finderに表示 を選択します。

するとFinderにアプリ化された、FFmpeg AAC with Artwork.app が存在している筈です。

このアプリ化されたファイルを実行すれば、簡単に起動できて、Artwork画像が継承されたAAC変換が行われる様になります。

 

Artwork付きハイレゾ音源ファイルをAAC変換してみます。

今回AAC変換するArtwork付きのハイレゾファイル(FLAC 192Khz 24bit )は、1964年録音のレコードから収録したカラヤン指揮・チャイコの悲愴・第3楽章です。 

先程アプリ化したFFmpeg AAC with Artwork.appをダブルクリックして、ビットレートを320kbpsと128kbpsの二通りでAAC変換しました。 1ファイル当たりのAAC変換時間は2.5分程要しました。

Finder確認・AAC(m4a)ファイル

上のFinder画面で、変換されたAAC(m4a)ファイルにArtworkと同じiconが表示され、ファイル名にビットレートと_FFmpeg_chgが追記されているのが確認できます。 一方、flacファイルはArtworkが付加されていますが、macOSではflacファイルの場合、iconが表示されない様です。
 
なお、このflacファイルは、当ブログのサンプル音源・DLコーナーの中に掲載されています。

AAC(m4a)変換されたサウンドはこれ

 

ピュアー音源で、CDを凌ぐ音質でAAC変換されているか確認します。

1khz sin波:AAC変換の歪率特性

1khz sin波のレベルを変えた(-0.5db,-3db,-20db,-48db,-60db)ファイル(24bit 192khz)を320kbpsでAAC変換した時の歪率をWaveSpectraで測定します。

下のグラフの通り、16bit CD 歪率よりも「FFmpeg AAC with Artwork.app 」でAAC変換した方の歪率が低減されていることが確認できます。

 

pink noiseを使ったcut-off周波数

-20db pink nois ファイル(24bit 192khz)をビットレートを320kbps、256kbps、160kbsを変えてAAC変換した時のスペクトルでcut-off周波数を測定します。

下のスペクトルの通り、320kbpsにおいてcut-off周波数を測定すると23.7khzで、CDのcut-off周波数(22.05khz)を超えていることが確認できました。

 

高域暴れの有無を確認

原因は定かではありませんが、AACエンコーダ(アプリ)によって、レコードからハイレゾ化したレベルの低い音源をAAC変換するとスペクトル上で高域部分に暴れが生じることを経験しています。

『「4つの視点」で再評価』記事で使用した高域暴れ評価用音源(192khz 24bit Flac)を使ってAAC変換したファイルのスペクトル(WaveSpectra)を確認したところ、下の動画(1分23秒)のとおり、高域暴れは生じていないことが確認できました。

 

評価結果

以上の評価データから、ハイレゾ(24bit)ファイルを「FFmpeg AAC with Artwork.app」でビットレートを320kbpsに指定してAAC変換を行えば、変換されたAACファイルはCD音質を超えることが期待できます。

 

今まで、FFmpegによるAAC変換は、Artwork画像が引継がれませんでしたが、今回作成した「ショートカットApp」により、自動的にArtwork画像が継承されることができるようになりました。 なお、アクションをワークフローに置き換えればAutomatorでも実現できると思います。

 

スポンサーリンク

 

 

 

Blog オススメ記事(コンテンツ選択)
  • レコード音質とハイレゾ化

  • CD音質と圧縮音源 AAC等

  • WordpressやiPhone・PC

  • ツールと閑話ブログ

レコード音質とハイレゾ化

CD音質と圧縮音源 AAC等

WordpressやPCなど

ツールと閑話ブログ