如何将音乐转换为432 Hz并保留封面、艺人等元数据?
批量转换音乐到432Hz并保留完整元数据的解决方案
一、FFmpeg 正确命令(跨平台,推荐)
你之前用FFmpeg丢元数据是因为没指定元数据映射和封面复制参数,以下是能完整保留元数据、专辑封面的批量转换命令:
针对Windows(批处理文件)
新建一个.bat文件,复制以下内容到文件中,放到音乐文件夹双击运行:
@echo off setlocal enabledelayedexpansion :: 遍历常见音乐格式,可根据需要添加(如*.wav) for %%f in (*.mp3 *.flac *.m4a) do ( :: 根据文件格式选择音频编码 if "%%~xf" == ".flac" ( set codec=flac ) else if "%%~xf" == ".m4a" ( set codec=aac -b:a 256k ) else ( set codec=libmp3lame -q:a 2 ) ffmpeg -i "%%f" ^ -filter:a "asetrate=44100*432/440,aresample=44100" ^ -c:v copy ^ -c:a !codec! ^ -map_metadata 0 ^ -id3v2_version 3 ^ "432Hz_%%f" ) echo 转换完成 pause
针对Linux/macOS(Shell脚本)
新建一个convert_432hz.sh文件,复制以下内容,赋予执行权限后运行:
#!/bin/bash for f in *.mp3 *.flac *.m4a; do case "${f##*.}" in flac) codec="flac" ;; m4a) codec="aac -b:a 256k" ;; mp3) codec="libmp3lame -q:a 2" ;; esac ffmpeg -i "$f" \ -filter:a "asetrate=44100*432/440,aresample=44100" \ -c:v copy \ -c:a $codec \ -map_metadata 0 \ -id3v2_version 3 \ "432Hz_$f" done
参数说明:
-filter:a "asetrate=44100*432/440,aresample=44100":先按432/440的比例调整采样率,再重采样回原采样率(44100Hz),实现音高转换且不改变时长-c:v copy:直接复制专辑封面(音乐文件的封面通常以视频流形式存储)-map_metadata 0:完整继承原文件的所有元数据(艺人、流派、专辑名等)-id3v2_version 3:确保MP3文件使用兼容的元数据版本,避免丢失信息
二、Audacity 批量处理(图形化工具)
你之前用Audacity丢元数据是因为导出时未勾选元数据选项,正确步骤:
- 打开Audacity,点击
文件→编辑链,创建新链(比如命名为432Hz转换) - 添加步骤:
导入:选择音频文件改变音高:设置偏移量为**-3.817 cents**(432Hz相对440Hz的标准音高偏移量)导出:选择对应格式(如MP3/FLAC),点击选项,勾选包含元数据,设置好导出质量
- 点击
文件→应用链,选择目标文件夹和刚才创建的链,批量执行转换
三、XLD(仅限macOS,简单高效)
XLD是macOS上的无损音频转换工具,默认保留所有元数据和封面:
- 导入所有需要转换的音乐文件
- 在
输出设置中选择目标格式,切换到音频处理标签 - 勾选
Pitch Shift,设置偏移量为**-3.817 cents** - 点击
转换即可,所有元数据和封面会自动保留
注意事项
- 转换前务必备份原文件,避免意外损坏
- 转换后用MP3Tag、MusicBrainz Picard等工具抽查几个文件,确认元数据和封面完整
- 针对无损格式(如FLAC),建议使用无损编码参数,避免音质损失
内容的提问来源于stack exchange,提问作者q4za4
相关产品推荐
相关产品推荐

