ffmpeg批量转换音频到mp3格式

  1. 1. 在 Linux 或 macOS 上
  2. 2. 在 Windows 上
  3. 3. 解释

使用 ffmpeg 批量转换音频文件到 MP3 格式是一个常见的任务,可以通过编写一个简单的脚本来实现。以下是在不同操作系统中实现这一任务的方法。

在 Linux 或 macOS 上

  1. 创建一个 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
    #!/bin/bash

    # 检查是否提供了目录参数
    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
  2. 赋予脚本执行权限

    1
    chmod +x convert_to_mp3.sh
  3. 运行脚本
    将你的音频文件放在一个目录中,然后运行脚本:

    1
    ./convert_to_mp3.sh /path/to/your/audio/files

在 Windows 上

  1. 创建一个批处理文件
    创建一个名为 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
    )
    )
  2. 运行批处理文件
    将你的音频文件放在一个目录中,然后运行批处理文件:

    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":指定输出文件名。