iPod

出自 ArchWiki

由苹果公司创建的 iPod 是一系列已停产的便携式媒体播放器。官方来说,您只能使用苹果的 iTunes 程序向 iPod 添加音乐,但还有其他几个程序也能够与 iPod 同步音乐。

访问存储

传统的 iPod 像一个普通的 USB 存储设备一样被访问,其中包含 vfathfsplus 文件系统。有关如何访问设备的详细说明,请参阅 USB 存储设备 文章。

提示
  • 如果您的 iPod 格式化为 hfsplus,您将需要 hfsprogsAUR 才能访问它。您也可以在 Windows 上使用 iTunes 恢复您的 iPod,以便将其格式化为 vfat。
  • 如果您的 iPod 格式化为 vfat,您可以使用 dosfslabel (来自 dosfstools) 来重命名 iPod 的卷标
# dosfslabel /dev/sdXY ArchPod

库管理

这些工具使用 libgpod

  • Clementine — Amarok 1.4 的克隆,移植到 Qt5。
https://www.clementine-player.org/ || clementineAUR
  • Strawberry — Clementine 的分支,旨在为音频爱好者和音乐收藏家服务。
https://www.strawberrymusicplayer.org/ || strawberry
  • Rhythmbox — iTunes 的 GTK 克隆,以前是 GNOME 的默认音乐播放器。
https://wiki.gnome.org/Apps/Rhythmbox || rhythmbox
  • gtkpod — 使用 GTK 为苹果 iPod 提供的 GUI。它允许您导入现有的 iTunes 数据库、添加歌曲、播客、视频和封面艺术,以及编辑 ID3 标签。
https://sourceforge.net/projects/gtkpod/ || gtkpodAUR
  • Amarok — 成熟的基于 Qt 的播放器,以其丰富的功能而闻名。
https://amarok.kde.org/ || amarokAUR

转换视频以用于设备

Handbrake

Handbrake 是一个方便的工具,为各种 iPod 版本预设了配置。CLI 和 GTK 版本分别通过 handbrake-clihandbrake 软件包提供。

如果您决定采用 CLI 方式,可以在 https://handbrake.fr/docs/en/latest/cli/command-line-reference.html 找到一个很好的指南。

Avidemux

安装 avidemux-qt 软件包。

这可以将视频转换为 mp4 文件。如果您强制将比特率硬性限制在 700 左右,并将视频尺寸保持在 720x480 或 320x240,那么它对于视频文件导出效果很好。

Mencoder

安装 mplayer 软件包。

具有极其全面的配置支持,这将能够输出 iPod 兼容的视频文件。查看 mencoder(1);许多 MPlayer 选项也会影响编码。

MEncoder 中也提供了一个基本指南。

一个用于编码 iPhone/iPod Touch 兼容视频的示例命令

$ mencoder INPUT -o output.mp4 \
-vf scale=480:-10,harddup \
-oac faac -faacopts mpeg=4:object=2:raw:br=128 \
-of lavf -lavfopts format=mp4 \
-ovc x264 -x264encopts nocabac:level_idc=30:bframes=0

FFmpeg

安装 ffmpeg 软件包。

另一个具有全面配置支持的编码器。用于为第五代 iPod 编码的示例命令

$ ffmpeg -vcodec xvid -b 300 -qmin 3 -qmax 5 -bufsize 4096 \
-g 300 -acodec aac -ab 96 -i INPUT -s 320x240 \
-aspect 4:3 output.mp4

或 iPod Touch/iPhone 兼容视频输出

$ ffmpeg -f mp4 -vcodec mpeg4 -maxrate 1000 -b 700 -qmin 3 -qmax 5\
-bufsize 4096 -g 300 -acodec aac -ab 192 -s 480×320 -aspect 4:3 -i INPUT output.mp4

设备特定

iPhone/iPod Touch

生成 HashInfo 文件

如果您从未使用 iTunes 同步过您的设备,您将收到错误消息,提示您缺少 HashInfo 文件。这可以通过使用 iTunes 同步一次来创建它来解决。或者,可以使用网站 http://ihash.marcansoft.com/ 创建此文件。在网站上输入 iPod 的序列号。它将生成一个名为 HashInfo 的文件,您将把它放在 /mnt/ipod/iPod_Control/Device/ 目录下。拔下 iPod 设备并重新插入。

解除数据库混淆

此文章或章节已过时。

原因: iOS 2.0 版本来自 2008 年,libgpod 已经能够读取数据库,而无需越狱设备和编辑系统文件。(在 Talk:IPod 中讨论)

自固件版本 2.0 以来,苹果公司已经混淆了音乐数据库。如果您使用的是较新的固件,可以修改文件 /System/Library/Lockdown/Checkpoint.xml 以启用较旧的、未混淆的数据库。如果该文件不存在,则尝试从 /System/Library/CoreServices/Checkpoint.xml 复制到 /System/Library/Lockdown/Checkpoint.xml,然后替换

<key>DBVersion</key>
<integer>4</integer>

<key>DBVersion</key>
<integer>2</integer>

然后重启您的设备。

如果同步失败并出现 ERROR: Unsupported checksum type '0' in cbk file generation! 错误,您可能需要将其保留为 4。libgpod 似乎 期望使用哈希数据库[死链接 2023-04-23 ⓘ]

iPod Classic/Nano (第三代)

您需要设置 iPod 以使 libgpod 能够找到其 Firewire ID。为此,您需要手动获取您的 FireWire ID

  1. 将 iPod 挂载为 rw 挂载点。在以下示例中,使用 /mnt/ipod
  2. 通过键入以下命令找到序列号
    # lsusb -v | grep -i Serial
    这应该打印一个 16 个字符长的字符串,如 00A1234567891231 (它将没有冒号或连字符)
  3. 获得该号码后,创建或编辑 /mnt/ipod/iPod_Control/Device/SysInfo。将以下行添加到该文件
    FirewireGuid: 0xffffffffffffffff
    (将 ffffffffffffffff 替换为您在上一步中获得的 16 位数字字符串,并且不要忘记字符串前面的 0x)

您的 iPod 现在可以使用 Amarok 或 gtkpod 进行管理。

iPod Nano 第五代

按照上面的 #生成 HashInfo 文件 中的说明设置哈希文件,这是写入设备音乐库所必需的。为了能够将 iPod Nano 第五代与 libgpod 一起使用,还需要将 SysInfoExtended 文件放在 /mnt/ipod/iPod_Control/Device/ 目录中。可以使用以下命令生成它

# ipod-read-sysinfo-extended bus device mountpoint

例如

# ipod-read-sysinfo-extended 001 011 /mnt/ipod/

iPod Nano 第六代

默认情况下,libgpod 似乎无法在 iPod Nano 第六代上同步。它会复制数据,但是一旦 USB 断开连接,一切都会恢复原样。libhashab-gitAUR 软件包修复了这个问题。此外,还需要 SysInfoExtended 文件,并且可以按照 #iPod Nano 第五代 中的相同方式生成,但是在此型号上不需要 HashInfo 文件。

iPod Shuffle 第一代和第二代

rebuild_db 是一个 Python 2 脚本,它使 iPod Shuffle 几乎可以像任何其他 USB 闪存 MP3 播放器一样使用。从网站下载脚本,然后将其放在 iPod 的根目录中。将您的 MP3 文件复制到 iPod Shuffle(也允许子文件夹),然后运行脚本

$ python2 /mnt/iPod/rebuild_db.py

iPod Shuffle 第四代

为了在 Linux 下使用此版本的 iPod Shuffle,您可以使用基于 python 的命令行工具 ipod-shuffle-4gAUR。它还提供高级语音提示和(自动)播放列表生成支持。

iPod Video (第五代和第五代半)

主线系列中直到包括此型号的 iPod 都不支持 AAC PNS 功能,并且在遇到它时会显示可听见的伪像。在为这些设备编码 AAC 文件时,在 ffmpeg 中禁用该功能。

$ ffmpeg -i input.ogg -c:a aac -b:a 256k -aac_pns 0 -movflags +faststart -vn output.m4a

-movflags +faststart 选项将 moov 原子放在文件的开头,这有助于 iPod 更快地解析文件。