iPod
由苹果公司创建的 iPod 是一系列已停产的便携式媒体播放器。官方来说,您只能使用苹果的 iTunes 程序向 iPod 添加音乐,但还有其他几个程序也能够与 iPod 同步音乐。
访问存储
传统的 iPod 像一个普通的 USB 存储设备一样被访问,其中包含 vfat 或 hfsplus 文件系统。有关如何访问设备的详细说明,请参阅 USB 存储设备 文章。
- 如果您的 iPod 格式化为 hfsplus,您将需要 hfsprogsAUR 才能访问它。您也可以在 Windows 上使用 iTunes 恢复您的 iPod,以便将其格式化为 vfat。
- 如果您的 iPod 格式化为 vfat,您可以使用 dosfslabel (来自 dosfstools) 来重命名 iPod 的卷标
# dosfslabel /dev/sdXY ArchPod
库管理
这些工具使用 libgpod 库
- Clementine — Amarok 1.4 的克隆,移植到 Qt5。
- Strawberry — Clementine 的分支,旨在为音频爱好者和音乐收藏家服务。
- Rhythmbox — iTunes 的 GTK 克隆,以前是 GNOME 的默认音乐播放器。
- gtkpod — 使用 GTK 为苹果 iPod 提供的 GUI。它允许您导入现有的 iTunes 数据库、添加歌曲、播客、视频和封面艺术,以及编辑 ID3 标签。
- Amarok — 成熟的基于 Qt 的播放器,以其丰富的功能而闻名。
转换视频以用于设备
Handbrake
Handbrake 是一个方便的工具,为各种 iPod 版本预设了配置。CLI 和 GTK 版本分别通过 handbrake-cli 和 handbrake 软件包提供。
如果您决定采用 CLI 方式,可以在 https://handbrake.fr/docs/en/latest/cli/command-line-reference.html 找到一个很好的指南。
Avidemux
安装 avidemux-qt 软件包。
这可以将视频转换为 mp4 文件。如果您强制将比特率硬性限制在 700 左右,并将视频尺寸保持在 720x480 或 320x240,那么它对于视频文件导出效果很好。
Mencoder
具有极其全面的配置支持,这将能够输出 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
另一个具有全面配置支持的编码器。用于为第五代 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 设备并重新插入。
解除数据库混淆
自固件版本 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
- 将 iPod 挂载为 rw 挂载点。在以下示例中,使用
/mnt/ipod
。 - 通过键入以下命令找到序列号
# lsusb -v | grep -i Serial
这应该打印一个 16 个字符长的字符串,如00A1234567891231
(它将没有冒号或连字符) - 获得该号码后,创建或编辑
/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 更快地解析文件。