如何在 Linux 终端中批量转换音频文件如何在 Linux 终端中批量转换音频文件如何在 Linux 终端中批量转换音频文件如何在 Linux 终端中批量转换音频文件
  • 业务
  • 产品
  • 技术
  • 行业
  • 目标
  • 支持
  • 关于
  • 联系我们
  • 登录
✕

如何在 Linux 终端中批量转换音频文件

发表 admin at 2025年2月28日
类别
  • Linux
标签

在运行从互联网复制/粘贴的任何终端命令之前,了解它们非常重要。下面包含简要说明,但请确保在运行之前检查每个命令的作用!

转换音频文件格式

下面的 Linux 终端命令展示了如何使用 FFmpeg 将 WAV 文件转换为 MP3:

for file in /path/to/source_directory/*.wav; do ffmpeg -i "$file" "/path/to/output_directory/$(basename "${file%.*}.mp3")"; done

要快速解释这里发生的情况(以及本页上使用循环处理多个文件的其他示例):

  • for循环用于处理源目录中所有扩展名为.wav的文件。在循环内,每个音频文件的路径被分配给 $file 变量。
  • $file 变量使用指定输入文件的 -i 选项传递给 ffmpeg 命令。
  • 传递给 FFmpeg 的最后一个参数始终是输出文件路径。 FFmpeg 将根据扩展名(在本例中为 .mp3)自动确定结果文件的格式。

FFmpeg 支持的音频转换流行的音频文件格式有 MP3、AAC、OGG、WAV、FLAC、M4A、WMA 和 AIFF。

要更改上述脚本中的文件转换,请将 .wav 替换为与要转换的文件格式匹配的文件扩展名,并将 .mp3 替换为支持的 FFmpeg要转换为的格式。请记住,Linux 中的文件路径和扩展名区分大小写!

更改音频比特率

下面的终端命令批量将 MP3 文件的比特率转换为 128k:

for file in /path/to/source_directory/*.mp3; do ffmpeg -i "$file" -b:a 128k "/path/to/output_directory/$(basename "${file%.*}_128k.mp3")"; done

降低比特率会使音频文件变小,而提高比特率会使音频文件变大。请注意,降低比特率是一个单向过程:一旦降低了质量,丢失的信息将无法恢复,再次提高比特率也无法恢复原始质量(尽管文件可能仍然变大,但质量获胜)没有得到改善)。

数字音频中使用的常见比特率有:

  • 320k(几乎)CD 音频质量
  • 256k 高品质
  • 192k 标准质量
  • 128k 调频广播质量

低于 128k 的比特率确实会让您的音频受到影响(听起来像旧电话),因此仅建议在需要压缩大量音频(例如长时间的对话录音)的情况下使用。

标准化音频音量

音量标准化使音频文件的音频电平保持一致,以便文件的响亮部分不会比录音的其余部分明显响亮:

for file in /path/to/source_directory/*.mp3; do ffmpeg -i "$file" -filter:a loudnorm "/path/to/output_directory/$(basename "${file%.*}_normalized.mp3")"; done

上述终端命令中使用了 FFmpeg 中的 loudnorm 过滤器来标准化音量。

转换为单声道/立体声

进一步减小音频文件大小的一种方法是将其从立体声转换为单声道(前提是内容不需要是立体声,例如通话录音):

将立体声转换为单声道:

for file in /path/to/source_directory/*.mp3; do ffmpeg -i "$file" -ac 1 "/path/to/output_directory/$(basename "${file%.*}_mono.mp3")"; done

将单声道转换为立体声:

for file in /path/to/source_directory/*.mp3; do ffmpeg -i "$file" -ac 2 "/path/to/output_directory/$(basename "${file%.*}_stereo.mp3")"; done

请注意,与降低比特率一样,将立体声转换为单声道时会丢失信息。如果您将文件转换回立体声,左右声道将被合并,并且不会取消合并;单声道轨道将仅复制到右/左通道。

批量重命名文件

以下命令将字符串 _renamed 附加到目录中所有 MP3 文件的文件名中:

for file in /path/to/source_directory/*.mp3; do cp "$file" "/path/to/output_directory/$(basename "${file%.*}_renamed.mp3")"; done

如果您经常在 Linux 中批量转换或重命名音频文件,则可以将这些命令添加到 Bash 脚本中以便于重复使用。

Linux 是一个出色的音频编辑平台

如果您想要超越简单的批量音频转换,您可以学习如何在 Linux 中制作自己的音乐或托管自己的流媒体广播服务器。

©2015-2025 Norria Group support@norria.com