前回記事でFFmpegコマンドラインをハイレゾ・ピュアー音源を使ってAAC変換の音質を評価しました。
FFmpegコマンドラインは付属のNative AACエンコーダーでハイレゾファイル【1khz sin -20db Wav(24bit、192khz)】をAACに変換(48khz 320kbps)したところ、歪率がTHD+Nで0.00056%と良好で、他のXLDコマンドライン等と違って、192khzハイレゾ音源をダイレクトに48kHz・AACに変換しても殆ど高域減衰が生じ無いことが確かめられました。
そこで、いちいちターミナルを開いてコマンドラインを打ち込むのも面倒ですので以前作成したAutomatorアプリをFFmpegコマンドライン用に修正したAAC変換アプリを作成してみました。
合わせて、リアル・ハイレゾ音源をAAC変換した時の音質比較を行いました。 比較対象は、以前作成した2種類のXLDとAfconvertコマンドラインを組み込んだAutomatorAAC変換アプリ(下記参照)です。 なお、比較基準のリアル・ハイレゾ音源は、e-onkyoから購入したカラヤン指揮ベートーベン交響曲8番2楽章(24bit、96khz flacファイル)です。
FFmpegコマンドライン組込・Aoutometor ワークフローアプリ作成(要点)
Aoutometor ワークフローアプリの基本的な作成方法はここをクリックして参照ください。
今回のワークフローアプリの名前を「FFmpeg to ACC.app 」としてワークフローアプリの要点となる「シェルスクリプトを実行」用のコードを以下に示します。
シェルスクリプトコード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# 文字化け対策 mediainfo で出力されたtxtファイルが文字化けするのを対策 export LANG=ja_JP.UTF-8 #選択したハイレゾファイルをfにフルパスで格納 for f in "$@" do # osascript -e 'tell app "System Events" to display dialog "ファイルが選択されました"' #fdirにディレクトリ文字列をセット fdir="${f%/*}" #ハイレゾファイルの拡張子をm4aに変更しf_aacにセット f_aac=${f%%.*}.m4a # 選択ファイルをAACに変換 /Applications/ffmpeg -i "$f" -aac_coder twoloop -vn -ar 48000 -ab 320k "$f_aac" #AACにFFmpeg>AACマークを付加 mv "${f%%.*}.m4a" "${f%%.*}_FFmpeg_chg.m4a" done |
ポイント
18行目:AAC変換用のFFmpegコマンドラインになります。(FFmpegコマンドラインの詳細はここをクリック)
21行目:AACに変換されたファイル名に「FFmpeg_chg」を追記しています。
なお、今回のワークフローの内容を詳しく知りたい場合やワークフローの修正を行う場合は、後段に示しますzipファイルをダウンロードして解凍後、Automatorアプリを起動して ファイル > 開く からダウンロードしたワークフローアプリを指定すれば、Automatorワークフローが参照できます。
作成したワークフローアプリ「FFmpeg to ACC.app 」を使う
今回作成したワークフローアプリ(FFmpeg to ACC_V20210831.app)をzipファイルとしてアップしましたので、DownLoadボタンを押してzipファイルをダウンロードし解凍します。
FFmpeg to ACC_V20210831.appをクリックして起動すれば、ハイレゾ音源のAAC変換が行えます。
アプリDLと使用上の注意ポイント
- 事前にFFmpegの公式ダウンロードページから リンゴマーク > Static builds for macOS 64-bit > ffmpeg-NNNNN-gXXXXXXXXXX .7z をクリックして圧縮ファイルをダウンロードします。 ダウンロードしたフィルを解凍するとFFmpeg.appが現れるので、 FFmpeg.appファイルをMACのアプリケーションフォルダーに設置しておきます。 (詳しくは、前回記事を参照)
- 今回のAutomatorの「FFmpeg to ACC.app」アプリをクリックすると「Appleに登録されていないアプリケーションを開こうとすると、警告ダイアログが表示されます。」 この場合はControlキーを押しながらアプリケーションアイコンをクリックして、ショートカットメニューから「開く」を選択します。 「開く」をクリックします。 アプリケーションはセキュリティ設定の例外として保存され、今後は登録済みのアプリケーションと同様に、ダブルクリックすることで開くことができるようになります。(参照URL:https://support.apple.com/ja-jp/guide/mac-help/mh40616/mac)
- このアプリは、エラー処理等は含んでいませんのでご注意ください。 例えば、ファイル名にドット「 . 」が含まれていると拡張子と誤認してエラーになります。
- アプリの使用によって、生じたいかなる損害も、補償いたしかねますことをご承知おきください。
コマンドラインを組み込んだAutomatorアプリの特徴(3種類)
以下の3種類のAAC変換 Automatorは、ビットレート:320kbps、サンプルレート:48khz に設定しています。
- FFmpeg to ACC_V20210831.app
FFmpegのNativeAACエンコーダが高域減衰を殆ど生じないので、元ファイルからダイレクトにAAC変換を行っています。 このため、ダウンサンプリングプロセスが無い分、処理時間が少なくなります。 - XLD convert Hi_reso to ACC.app
AACエンコーダに高域減衰が生じるので、元ファイルを一旦48khzまでダウンサンプリングした後、AAC変換を行っています。 XLDコマンドラインのオプション設定はMacOSのXLDアプリと連携する必要があります。 (参照リンク:ここをクリック) - Afconvert_Hi_reso_to_AAC.app
AACエンコーダに高域減衰が生じるので、元ファイルを一旦48khzまでダウンサンプリングした後、AAC変換を行っています。 (参照リンク:ここをクリック)
ハイレゾ・リアル音源をAAC変換した時の音質等の比較(結果)
ハイレゾ・リファレンス音源
e-onkyoからFlac(24bit 96khz)で購入した、「ベートーヴェン 交響曲全集_31_Beethoven Symphony No8 In F, Op93 - 2」のflacファイルをリファレンス音源にしました。
音質評価方法
3種類のAutomatorアプリでハイレゾ・リファレンス音源(e-onkyo Flacファイル)をAAC変換し、AACファイル(48khz)をAoudacityに取り込みます。 リファレンス音源のサンプリング周波数は96khzですので、取り込んだAACファイルを96khzに合わせるためリサンプリングした後、周波数分析(スペクトル)します。 周波数分析したテキストデータを書き出し、Numbersに取り込んでグラフ化しました。 更に、我が家のB級オーディオで試聴・比較も行いました。
1. 全体スペクトル比較
2. ハイレゾリアル音源との差分スペクトル比較
3. 試聴・比較
我が家のB級オーディオ(再生プレーヤはHAP-Z1ES)で、e-onkyo Flacハイレゾ音源と3種類のAutomatorアプリでAAC変換したファイルの試聴です。 駄耳のため正確な評価出来ないのが本当のところですが敢えて音質比較を試みました。
当初、3種類のAutomatorアプリで生成されたAACファイルは、ピュアー音源の歪率や周波数特性(F特)から聴感上、e-onkyo Flacハイレゾ音源との音質差は殆ど無いと想定していました。
ところが想定とは違い、実際に4種類の音源を聴くと、e-onkyo Flac音源が最も好ましく聴こえ、弦の音質も安定して聴こえてしまいました。
念のため、HAP-Z1ESのDSEEやDSDマスタリングの設定を確認したら、右のiPhoneのHAP-Z1ES設定画面の様に、設定が「ON」になっていました。 そこで、この2つの設定を「OFF」にして試聴たところ、今度は当初想定した通り、e-onkyo Flac音源と3種類のAAC音源の音質差は感じなく同等になりました。
ことほど左様に、歪率やF特の性能が良好であるAAC音源(不可逆圧縮音源)なら、HAP-Z1ESのDSEEやDSDマスタリングは却って悪影響を及ぼし、高域補完等は行わないのが得策と思えました。 この点は、以前の記事「sony HAP-Z1ES「DSEE」の真実 」で詳しく述べていますのでご参照ください。(ここをクリック)
4. ファイル圧縮率とタグ情報・比較
AACファイルの圧縮率は、夫々のAACエンコーダともファイルサイズの差は殆ど無く、圧縮率は12%程度でした。
元ファイルのタグ情報の引継ぎは、Tag Editor Freeアプリを使ってe-onkyo Flacオリジナルのタグ情報がAAC変換した時に引き継がれているかを見たものです。
この結果から、XLDは完全にサムネール画像含めてタグ情報が引き継がれています。 FFmpegは、サムネール画像以外のタグ情報が引き継がれています。 Afconvertは、タグ情報の引き継ぎがありません。
FFmpegコマンドラインを組込んだAutomatorアプリの順位付け
ここで、3種類のAutomator・AAC変換アプリの順位付けを試みました。
- 3種類のAutomator・AAC変換アプリの音質は同等で、歪率面、F特面からCD音質を凌ぐものと思われる。
- FFmpegは、他のAutomatorアプリと違い、ハイレゾ音源をダイレクトにAAC変換できるのでダウンサンプリングのプロセスが不要なため、AAC変換の処理時間が少ない。
- FFmpegのタグ情報の引継ぎは、サムネイルを除いてタグ情報が引継がれるのでAfconvertよりも優位。 一方、XLDは、サムネイル含めてタグ情報が全て引き継がれるメリットがあるも、オプション設定がMacOSのXLDアプリと連携する必要がある。
以上から、3種類のAutomator・AAC変換アプリの音質は同等なので、音質以外の使い勝手やパフォーマンスを考慮した独断と偏見での順位付は、
XLD ≧ FFmpeg > Afconvert
注意ポイント
NativeAACは、ビットレートが192Kbps付近から劣化量が増大すると言う問題点が浮かび上がりました。 ビットレートを256kbps以上に設定する必要があります。 詳しくは下の記事を参照してください。(2023/1/20追記)
-
Pink-noiseでビットレートと劣化量の関係を調べてみました。
AAC変換する時にビットレートを低く(オプション)設定すると劣化量がどの程度に増加するものなのか?ネットで調べても具体例が無く、その特性を知りたくなりました。 そこで、今回はFFmpegAACエンコ ...
以上、「FFmpegコマンドラインを組込んだAutomatorを使ったAAC変換」の評価結果でした。 ハイレゾ音源からAAC変換する時の有力な選択肢の一つだと思います。
FFmpeg組込みAutomatorの改善
サムネール(Artwork)画像を引き継ぐFFmpegショートカットAppを新たに作成しました!(2022/9/9追記)
「5つの視点」での評価ランキング
この記事のFFmpegコマンドラインを組込んだautomator AAC変換アプリは 第3位でした。(2023/2/14追記)
-
「5つの視点」で再評価。 ハイレゾ音源をAAC変換する24bit対応AACエンコーダ(アプリ)の評価ランキング
今迄、レコードからハイレゾ録音した音源をAACに変換する時に極力音質を劣化させず、CD音質を凌ぐにはどうしたら良いか?自分流で試してきた結果を投稿しました。 ただ、評価に統一性がないとこ ...