词典

什么是附加图片?

Attached Pic 是音频或视频文件中某个流上的一个标志。它表示该流包含一张静态图片,例如专辑封面。

attached-pic

附加图片是和其他内容一起提供的图像,比如邮件中的照片。在音频或视频文件中,附加图片是存储在文件内部的图像。典型例子是专辑或单曲的封面图。

“Attached Pic”是在元数据报告中标记此类图片的字段名称。这个名称来自 FFmpeg 项目的文件读取程序 ffprobe,它会将该字段写为 attached_pic。

FFmpeg 把文件的每个部分列为一个独立的流。它为每个流分配一组标志,称为 disposition。每个标志要么开启要么关闭,Attached Pic 就是这些标志之一。

数值的呈现方式

ffprobe 读取程序的 -show_streams 选项会为每个流打印该标志,即使文件中没有附加图片。这个标志在输出中有 2 种取值:

  • 0:该流不是附加图片,例如普通的音频或视频流
  • 1:该流包含附加图片,比如专辑封面

FFmpeg 为一个文件打印的简短概览中,会把同一个标志显示为 (attached pic)。FFmpeg 只在标志开启时才打印这个标签。

哪些文件携带它

FFmpeg 将附加图片视为只含一帧图像的视频流。因此,带封面的歌曲可以报告 2 个流:一个用于声音,一个用于图片。图片流的编码类型是 video,尽管图片本身不会动。

FFmpeg 会根据格式不同,从不同位置读取图片:

  • MP3:ID3v2 标签中的 APIC 帧,ID3v2 标准称其为 Attached picture
  • M4A 和 MP4:covr 条目,ExifTool 将其称为 CoverArt
  • FLAC:图片块,一个文件中可以包含多个这样的块
  • MKV:具有图像类型的附件,例如名为 cover.jpg 或 cover.png 的文件

照片和电子书会把图片存放在其他字段中。JPEG 照片可以在其 Thumbnail Image 字段中存储一个小预览图。EPUB 电子书最多会将一个图像文件标记为封面。

数值的来源

文件本身并不包含名为 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 文件,规范要求程序在通过网络加载该图像之前,必须先征求你的同意。