添付画像とは、メールの写真のように、ほかのものに付いてくる画像のことです。音声ファイルや動画ファイルでは、添付画像はファイル本体の中に保存されている画像のことです。典型的な例は、アルバムやシングルのカバーアートです。
Attached Pic は、メタデータレポート内でそのような画像を示すフィールドです。この名前は FFmpeg プロジェクトのファイルリーダーである ffprobe から来ており、ffprobe はこれを attached_pic として出力します。
FFmpeg は、ファイルの各部分を個別のストリームとして一覧表示します。そして各ストリームに、ディスポジションと呼ばれるフラグのセットを付けます。各フラグはオンかオフのどちらかで、Attached Pic もその1つです。
値の見え方
ffprobe リーダーの -show_streams オプションは、添付画像がないファイルでも、すべてのストリームについてこのフラグを出力します。このフラグは、その出力内で次の2つの値を取ります。
0: そのストリームは添付画像ではありません。たとえば通常の音声ストリームや動画ストリームです1: そのストリームは添付画像を持ちます。たとえばアルバムのカバー画像などです
FFmpeg がファイルについて出力する簡易概要にも、(attached pic) と同じフラグが表示されます。FFmpeg は、このフラグがオンのときにだけこのラベルを出力します。
どのファイルがそれを持っているか
FFmpeg は、添付画像を1枚だけの画像から成る動画ストリームとして扱います。そのため、カバーアート付きの楽曲は、音声用と画像用の 2 つのストリームを持つと報告されることがあります。画像ストリームのコーデックタイプは video ですが、その画像が動くことはありません。
FFmpeg は、形式ごとに異なる場所から画像を読み取ります。
- MP3: ID3v2 タグ内の APIC フレームで、ID3v2 規格ではこれを Attached picture と呼びます
- M4A および MP4: ExifTool が
CoverArtと呼ぶcovrアイテムです - FLAC: picture ブロックで、1つのファイルに複数の picture ブロックを持つことができます
- MKV:
cover.jpgやcover.pngのような名前の、画像タイプの添付ファイルです
写真や電子書籍は、別のフィールドに画像を保持します。JPEG 写真は、そのThumbnail Image フィールドに小さなプレビュー画像を保存できます。EPUB 電子書籍は、最大1つの画像ファイルをカバーとして指定します。
値の由来
ファイルそのものには、Attached Pic という名前のフィールドは存在しません。FFmpeg は、ピクチャフレーム、ピクチャブロック、または画像の添付を見つけたときに、このフラグをオンにします。
MP3 と FLAC ファイルについて、FFmpeg は画像の説明文を title タグにコピーします。また画像タイプを comment タグにコピーします。
画像タイプは 0 から 20 までの数値で、その画像に何が写っているかを表します。FFmpeg は、このタイプをテキストとして書き出します。例えば次のようになります。
- タイプ 0、
Other: 他のいずれのタイプにも当てはまらない画像です - タイプ 3、
Cover (front): フロントカバーで、多くのプレーヤーが再生中に表示します - タイプ 4: バックカバーです
- タイプ 6: メディア本体です。例えば CD のレーベル面などです
FFmpeg がアルバムアート 埋め込みを書き込めるのは、対応形式の一部だけです。画像そのものの形式としては、ID3v2 規格と Matroska 仕様のどちらも JPEG と PNG を推奨しています。
それが重要な理由
このフラグは、ストリームが画像であり、動く動画ではないことをソフトウェアに知らせます。FFmpeg のコマンドでは、ストリームセレクタ V は、添付画像ではない動画ストリームだけを選択します。
画像データはファイルの中に格納されるため、大きなカバー画像はファイル全体のサイズを大きくします。画像にはカバー以外に、演奏者や録音場所などを写すこともできます。
ピクチャフレームやピクチャブロックには、ファイルの外部にある画像へのリンクを保存できる場合もあります。FLAC ファイルでは、仕様により、プログラムはネットワーク越しにその画像を読み込む前に、ユーザーに確認を求めなければならないと定められています。