怎么用脚本转换音频比特率

wen 实用脚本 2

本文目录导读:

怎么用脚本转换音频比特率

  1. 使用 FFmpeg(最推荐)
  2. 使用 Python + pydub
  3. Python + librosa(支持更多格式)
  4. 使用 SoX
  5. 完整的 Python 脚本示例
  6. 使用示例
  7. 常见比特率参考

使用 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(无损)

注意事项:提高比特率不会增加音质,只会增加文件大小,降比特率会损失音质但减小文件大小。

抱歉,评论功能暂时关闭!