アートワーク付きのハイレゾ音源をFFmpegでAAC変換 すると、タグ情報(タイトルやアーティスト等)は引き継がれますが、残念なことにアートワーク画像は引き継がれません。 (例えば、iPhoneのミュージックアプリにアートワークの無いAACファイルを追加するとプレイリストには代替の ♫ 音符マークが表示されてします。)
今回は、変換元・音源に含まれるアートワーク(画像)をAACファイルに引き渡す方法の紹介です。 (新たな画像ファイル(png or jpg)を用意すれば AACファイルにArtworkを付加することもできます)
FFmpegによるハイレゾ音源のAAC変換の方法は、以下の関連記事を参照してください。
タグ情報について
音源には、タイトルやアーティスト等のタグ情報とアートワーク(サムネール画像)が埋め込まれています。 この情報を調べるには、「Tag Editor Free」アプリ を利用するのが簡単です。
Tag Editorアプリに音源ファイルをドロップしますとタグ情報とアートワークが表示されます。 例として、レコードからハイレゾ録音した音源ファイル(上段)とFFmpegでAAC変換したファイル(下段)を示します。(この表示例は、分かりやすくするため、Tag Editorで表示された情報をmacOSのNumbersで加工した画像です)
オペレータ
FFmpegでAAC変換したファイルは、アートワーク(画像)が引き継がれていませんね。 これではiPhoneのミュージックアプリにAACファイルを追加するとプレイリストには代替の♫ 音符マークが表示されてします。
AtomicParsleyのインストール
FFmpegでAAC変換する時に変換元・音源に含まれるArtwork(画像)を付加するためには、事前に「Homebrew」を経由して AtomicParsley のインストールが必要です。
「Homebrew」のインストールがお済みでない方は、下のボタンを押して参照してください。
+ Homebrewインストール(参考)
Homebrew とは、Wikipedia によれば『macOS、Linux、Windows Subsystem for Linux」で動作するパッケージ管理システムのひとつで、パッケージ管理システムとは、コンピュータのプログラムを一貫した方法でインストールやアンインストール、ライブラリなどの依存関係を解決する流れをツールによって管理を自動化するシステムである』とのことです。 つまり、macOSのターミナル上で簡単にパッケージのインストールやアンインストールを実行できる様にするツールと言えます。
Homebrewの公式ページ を開き、「インストール」表記の下に示さているコードをコピーします。
ターミナルを起動して、コピーしたコードを貼り付け実行すると、「Homebrew」が自動的にインストールされて行きます。
ターミナル
例;
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストール途中で、
==> The Xcode Command Line Tools will be installed. (Xcode Command Line Tools がインストールされます。)と表示されリターンを押して続行 します。
==> Installation successful! と表示され、最後に
==> Next steps:
- Run these two commands in your terminal to add Homebrew to your PATH:
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/*****/.profile
eval "$(/opt/homebrew/bin/brew shellenv)"と表示されるので、echo以下のコードをコピペ・リターンで終了です。
ターミナル
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/*****/.profile
eval "$(/opt/homebrew/bin/brew shellenv)"
"brew help " と入力して「Homebrew」のhelp内容が表示されればインストールは成功です。
ターミナル
brew help(⏎)
↓
Example usage:
brew search TEXT|/REGEX/
brew info [FORMULA|CASK...]
brew install FORMULA|CASK...
:
「閉じる」
AtomicParsleyのインストール
ターミナルで、下の様にHomebrewのコマンドラインを実行すると、自動でAtomicParsleyが約30秒程でインストールが完了します。
ターミナル
brew install atomicparsley # インストールが完了したら、確認のため
atomicparsley -h # helpが表示されれば成功です。
FFmpegのインストールがお済みで無い方は、以下でインストールします。
+ FFmpegのインストール(参考)
注意ポイント
FFmpegのAACエンコーダは、NativeAACとlibfdk_aacがあります。 libfdk_aacは前回ページ で評価したところ、16bit入力になっており、ハイレゾ(24bit)をlibfdk_aacでAAC変換するとCDレベルに歪率が悪化することが判りました。
このため、下の手順のAAC変換(コマンドライン)では、24bit入力の NativeAAC を採用しています。
ターミナルを開き、下の様にコマンドラインを入力してリターンしてインストールを開始します。 多少時間はかかりますが自動的にインストールされます。
ターミナル
brew tap homebrew-ffmpeg/ffmpeg
brew install homebrew-ffmpeg/ffmpeg/ffmpeg --with-fdk-aac
ターミナルで、下の様に-hオプションで help が表示されることを確認します。
ターミナル
ffmpeg -h(⏎)
ffmpeg version 5.1 Copyright (c) 2000-2022 the FFmpeg developers
built with Apple clang version 13.1.6 (clang-1316.0.21.2.5)
configuration: --prefix=/opt/homebrew/Cellar/ffmpeg/5.1-with-options_1 --enable-shared --cc=clang --host-cflags= --host-ldflags= --enable-gpl --enable-libaom --enable-libdav1d --enable-libmp3lame --enable-libopus --enable-libsnappy --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-libx265 --enable-libfontconfig --enable-libfreetype --enable-frei0r --enable-libass --enable-demuxer=dash --enable-opencl --enable-audiotoolbox --enable-videotoolbox --enable-neon --disable-htmlpages --enable-libfdk-aac --enable-nonfree
libavutil 57. 28.100 / 57. 28.100
//中略
-canvas_size size set canvas size (WxH or abbreviation)
-spre preset set the subtitle options to the indicated preset
「閉じる」
FFmpegでAAC変換する時に変換元・音源に含まれるArtwork(画像)を引き渡す手順
AAC変換〜アートワーク引き渡し(手順)
ターミナルを起動して、下のFFmpeg とAtomicParsley のコマンドラインを実行します。
ハイレゾ音源ファイルをNativeAACエンコーダでAAC変換(m4a)を行う ターミナル
ffmpeg -i "変換元ファイル.wav" -aac_coder twoloop -vn -ar 48000 -ab 320k "変換後のファイル名.m4a"
ハイレゾ音源ファイルの画像を抽出してArtwork.pngに保存 ターミナル
ffmpeg -i “変換元ファイル.wav” -an -codec:v copy “抽出artwork File名.png (or jpg)”
抽出したArtwork.pngを AtomicParsley で AAC変換したフィル(m4a)にコピーする ターミナル
AtomicParsley “変換後のファイル名.m4a” --artwork “抽出artwork File名.png ” --overWrite
抽出したArtwork.pngを削除 ターミナル
rm “artwork.png”
AtomicParsley の注意ポイント
(2022/9/4追記) AtomicParsleyは、少々癖のあるCLIアプリの様です。 AACファイルやArtworkファイルがパスを含めたファイル名が長いと filename/filepath was too long. と表示されコピーエラーになる場合があります。
これを防止するために、cdコマンドで、AAC(m4a)ファイルが存在するディレクトリに移動して、パスを含めないコマンドラインでArtworkをコピーする必要があります。
ターミナル
NG例:
AtomicParsley “/path1 /path2 /変換後のファイル名.m4a” --artwork “/path1 /path2 /抽出artwork File名.png ” --overWrite
ターミナル
OK例:
cd "/path1/path2 "
AtomicParsley “変換後のファイル名.m4a” --artwork “抽出artwork File名.png ” --overWrite
cd #ルートに戻す
Artwork(画像)がAACファイルに引き渡されたか確認
AACファイルにアートワーク(画像)が引き継がれているか?「Tag Editor Free」アプリで確認しました。
下に示す様に、オリジナルFileに入っている「アートワークやTag情報」の全てがAAC変換ファイルに正しく引き継がれていますね。
オペレータ
今回はAACファイルに絞りましたがその他の音源ファイルもこの方法を応用すればArtwork(画像)を引き渡すことができると思います。 今回の作業は非効率ですので、Automator(又はショートカット)を使って自動化する方法を次ページで紹介 したいと思います。