之前找到了一个 20 年前的随身听(只有 128 MB,现在的歌曲完全撑不下),用来离线听歌。不过最近换到云村下载,发现拷贝进随身听刚播放就会死机。后来发现能正常播放的歌曲都来自小众网站(?),初步判定是元数据的作用。试验了一下,猜想正确。所谓元数据,可以被理解为 Windows 资源管理器(或者访达和 Dolphin 之类)的文件详细信息。

为了便于复制,随手做了一个可以删除元数据的脚本,用到了 ffmpeg 。对于大部分 Linux 发行版和 macOS,可以使用 aptyumpacmanemergebrew 等包管理器安装。

```bash 安装 ffmpeg
sudo apt install ffmpeg

1
2
3

```bash 安装`ffmpeg`
brew install ffmpeg

对于单个文件,直接执行命令将 ./origin.mp3 转换为 ./outputs/no-metadata.mp3

转换单个文件
1
2
mkdir ./outputs
ffmpeg -i ./origin.mp3 -map 0:a -c:a copy -map_metadata -1 ./outputs/no-metadata.mp3

本实例在 .mp3 音频文件所在的目录创建了 outputs 子目录用于存储转换后的文件。

转换多个文件
1
2
3
4
5
6
echo "mkdir ./outputs" >> ./rm-metadata.sh
echo "for f in *.mp3" >> ./rm-metadata.sh
echo " do ffmpeg -i $f -map 0:a -c:a copy -map_metadata -1 ./outputs/${f:0:0-4}.mp3" >> ./rm-metadata.sh
echo "done" >> ./rm-metadata.sh
chmod +x ./rm-metadata.sh
./rm-metadata.sh