本文目录导读:

使用 FFmpeg(最推荐)
基本命令
# 转换 MP3 比特率 (128k → 320k) ffmpeg -i input.mp3 -b:a 320k output.mp3 # 转换 AAC 比特率 (128k → 256k) ffmpeg -i input.m4a -c:a aac -b:a 256k output.m4a # 转换 WAV 到 MP3 并设置比特率 ffmpeg -i input.wav -c:a libmp3lame -b:a 192k output.mp3
批量转换脚本
#!/bin/bash
# Linux/Mac 批量转换 MP3 到指定比特率
for file in *.mp3; do
ffmpeg -i "$file" -b:a 320k "converted_$file"
done
使用 Python + pydub
from pydub import AudioSegment
# 转换单个文件
def convert_bitrate(input_file, output_file, bitrate="320k"):
audio = AudioSegment.from_file(input_file)
audio.export(output_file, format="mp3", bitrate=bitrate)
# 批量转换
import os
def batch_convert(folder, target_bitrate="320k"):
for file in os.listdir(folder):
if file.endswith(".mp3"):
input_path = os.path.join(folder, file)
output_path = os.path.join(folder, f"converted_{file}")
convert_bitrate(input_path, output_path, target_bitrate)
安装依赖
pip install pydub # 还需要安装 ffmpeg # Mac: brew install ffmpeg # Ubuntu: sudo apt install ffmpeg
Python + librosa(支持更多格式)
import librosa
import soundfile as sf
def convert_with_librosa(input_file, output_file, target_sr=44100):
# 加载音频
audio, sr = librosa.load(input_file, sr=target_sr)
# 保存为指定格式
sf.write(output_file, audio, target_sr, format='mp3')
使用 SoX
# 转换并设置比特率
sox input.mp3 -C 320 output.mp3
# 批量处理
for f in *.mp3; do
sox "$f" -C 320 "converted_$f"
done
完整的 Python 脚本示例
#!/usr/bin/env python3
import argparse
import os
from pathlib import Path
import subprocess
class AudioConverter:
def __init__(self, bitrate="320k", codec="libmp3lame"):
self.bitrate = bitrate
self.codec = codec
def convert_file(self, input_file, output_file):
cmd = [
'ffmpeg', '-i', input_file,
'-c:a', self.codec,
'-b:a', self.bitrate,
'-y', # 覆盖输出文件
output_file
]
subprocess.run(cmd, check=True)
def batch_convert(self, input_dir, output_dir, extension=".mp3"):
Path(output_dir).mkdir(parents=True, exist_ok=True)
for file in Path(input_dir).glob(f"*{extension}"):
output_path = Path(output_dir) / f"converted_{file.name}"
print(f"Converting: {file.name}")
self.convert_file(str(file), str(output_path))
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Audio Bitrate Converter")
parser.add_argument("input", help="Input file or directory")
parser.add_argument("-b", "--bitrate", default="320k", help="Target bitrate")
parser.add_argument("-o", "--output", help="Output file or directory")
parser.add_argument("--batch", action="store_true", help="Batch convert directory")
args = parser.parse_args()
converter = AudioConverter(bitrate=args.bitrate)
if args.batch:
output_dir = args.output or "converted"
converter.batch_convert(args.input, output_dir)
else:
output = args.output or f"converted_{Path(args.input).name}"
converter.convert_file(args.input, output)
print("Conversion complete!")
使用示例
# 使用 FFmpeg 直接转换 ffmpeg -i song.mp3 -b:a 128k song_128k.mp3 # 使用 Python 脚本 python converter.py input.mp3 -b 192k -o output.mp3 # 批量转换目录 python converter.py ./audio_files --batch -b 320k -o ./converted
常见比特率参考
- MP3: 128kbps(标准),192kbps(良好),320kbps(最佳)
- AAC: 128kbps(良好),256kbps(优质)
- WAV: 1411kbps(无损)
注意事项:提高比特率不会增加音质,只会增加文件大小,降比特率会损失音质但减小文件大小。