使用 ffmpeg
批量转换音频文件到 MP3 格式是一个常见的任务,可以通过编写一个简单的脚本来实现。以下是在不同操作系统中实现这一任务的方法。
在 Linux 或 macOS 上
创建一个 Bash 脚本:
创建一个名为convert_to_mp3.sh
的文件,并在其中编写以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 检查是否提供了目录参数
if [ -z "$1" ]; then
echo "Usage: $0 <directory>"
exit 1
fi
# 获取目录路径
DIR="$1"
# 遍历目录中的所有音频文件
for file in "$DIR"/*.{wav,flac,aac,ogg,m4a}; do
if [ -f "$file" ]; then
# 获取文件名和扩展名
filename=$(basename -- "$file")
extension="${filename##*.}"
filename="${filename%.*}"
# 转换为 MP3
ffmpeg -i "$file" -vn -ar 44100 -ac 2 -ab 192k -f mp3 "$DIR/$filename.mp3"
echo "Converted $file to $DIR/$filename.mp3"
fi
done赋予脚本执行权限:
1
chmod +x convert_to_mp3.sh
运行脚本:
将你的音频文件放在一个目录中,然后运行脚本:1
./convert_to_mp3.sh /path/to/your/audio/files
在 Windows 上
创建一个批处理文件:
创建一个名为convert_to_mp3.bat
的文件,并在其中编写以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18@echo off
setlocal enabledelayedexpansion
if "%~1"=="" (
echo Usage: %0 ^<directory^>
exit /b 1
)
set DIR=%1
for %%f in ("%DIR%\*.wav" "%DIR%\*.flac" "%DIR%\*.aac" "%DIR%\*.ogg" "%DIR%\*.m4a") do (
if exist "%%f" (
set "filename=%%~nf"
set "extension=%%~xf"
ffmpeg -i "%%f" -vn -ar 44100 -ac 2 -ab 192k -f mp3 "%DIR%\!filename!.mp3"
echo Converted %%f to %DIR%\!filename!.mp3
)
)运行批处理文件:
将你的音频文件放在一个目录中,然后运行批处理文件:1
convert_to_mp3.bat C:\path\to\your\audio\files
解释
ffmpeg -i "$file" -vn -ar 44100 -ac 2 -ab 192k -f mp3 "$DIR/$filename.mp3"
:-i "$file"
:指定输入文件。-vn
:不包含视频流。-ar 44100
:设置音频采样率为 44.1 kHz。-ac 2
:设置音频通道数为 2(立体声)。-ab 192k
:设置音频比特率为 192 kbps。-f mp3
:指定输出格式为 MP3。"$DIR/$filename.mp3"
:指定输出文件名。