音频格式转换
官方脚本
可调用节点
v2.0.0
音频格式转换 | 基于 FFmpeg 支持 mp3/wav/flac/ogg/aac/opus/wma/m4a/aiff/ape/m4b/oga 共 12 种格式互转,可调采样率/音质/声道,批量转换,右键一键转换
脚本能力
直接启动支持
右键启动支持
快捷键启动支持
超级复制启动不支持
定时任务支持
可被其他脚本调用是
依赖其他脚本否
图形化启动界面支持
一键将音频转换为 MP3 / WAV / FLAC / OGG / AAC / OPUS / WMA / M4A / AIFF / APE / M4B / OGA 等 12 种格式,基于 FFmpeg 引擎,支持批量转换、定时任务与节点联动。
核心特性
- 12 种格式互转:MP3、WAV、FLAC、OGG、AAC、OPUS、WMA、M4A、AIFF、APE、M4B、OGA,基于 FFmpeg 引擎
- 批量转换:一次选中多个音频文件,一键全部处理
- 可视化参数窗口:启动前弹出参数界面,输出格式、采样率、音质、声道自由调整,自动记住上次选择
- 自定义输出目录:可指定输出位置,留空则保存到原文件所在目录
- 采样率可调:原始 / 8kHz / 16kHz / 22.05kHz / 44.1kHz / 48kHz / 96kHz
- 音质可调:320kbps / 256kbps / 192kbps / 128kbps / 64kbps(无损格式自动忽略)
- 声道可调:原始 / 立体声 / 单声道
- 智能跳过:同格式、已存在的文件自动跳过,也可开启覆盖
- 元数据保留:自动保留标题、艺术家、专辑等原始信息
- 定时任务:可无人值守按预设参数自动转换
- 节点联动:可作为节点被其他脚本调用,返回成功与失败的文件列表
脚本演示

安装方法
本脚本的运行环境、依赖组件及图形化窗口均依赖「不忙脚本盒子」,建议仅通过盒子安装和使用本脚本。
前置条件:安装好 不忙脚本盒子
- 打开盒子 → 脚本市场 → 搜索 「音频格式转换」
- 点击「安装」
使用方式
-
右键启动(日常推荐)
- 在文件管理器中选中一个或多个音频文件
- 右键 → 选择「音频格式转换」
- 在参数窗口中确认转换参数,点击「执行」
-
快捷键启动
- 在盒子中为该脚本设置全局快捷键
- 选中音频文件后按下快捷键,确认参数后执行
-
卡片启动
- 在盒子里点击「音频格式转换」卡片
- 在参数窗口中选择源文件并设置参数,点击「执行」
-
定时任务
- 在盒子中为该脚本创建定时任务,填写源文件与转换参数
- 到点自动转换,无需人工干预
💡 使用提示
| 参数 | 说明 |
|---|---|
| 输出格式 | 目标音频格式,12 种可选 |
| 输出目录 | 留空则输出到源文件所在目录 |
| 采样率 | 选「原始」则跟随输入音频 |
| 音质 | 有损格式的比特率,无损格式(FLAC/WAV/AIFF/APE)自动忽略并隐藏 |
| 声道 | 选「原始」则跟随输入音频 |
| 覆盖已存在 | 关闭时跳过同名文件,开启时覆盖 |
- 参数窗口会自动回填上次确认运行的参数,未改动的以默认值为准
- 同格式文件会被自动跳过,无需担心重复处理
节点脚本(开发者阅读)
本脚本声明了 [bmscriptsbox.node],可作为节点被其他脚本通过 /api/link 调用。传入 target_paths 与转换参数,返回信封中的 output_files(成功转换的输出路径列表)与 failed_files(失败列表)。
import json, sys, requests
payload = json.load(open(sys.argv[1], encoding="utf-8"))
env = payload["environment"]
r = requests.post(f"{env['api_base']}/api/link", json={
"script_id": "02380f36-2c51-4eae-a64d-65fbe78d4832",
"data": {"target_paths": ["C:/music/a.wav"]},
"params": {"format": "mp3", "quality": "192k", "overwrite": True},
}, timeout=3600)
result = r.json()["result"]
if result.get("code") == 0:
print(result["output_files"])
🖥️ 环境要求
| 项目 | 要求 |
|---|---|
| 操作系统 | Windows 10+(64 位) |
| 运行环境 | Python 3.8+、FFmpeg |
本脚本已声明为节点,可被其他脚本通过「不忙脚本盒子」机制调用。完整配置见下方 TOML,其他脚本若需调用请严格按此配置构造请求。
bm-scripts-box-rc.toml
[bmscriptsbox]
[bmscriptsbox.info]
id = "02380f36-2c51-4eae-a64d-65fbe78d4832"
name = "音频格式转换"
desc = "音频格式转换 | 基于 FFmpeg 支持 mp3/wav/flac/ogg/aac/opus/wma/m4a/aiff/ape/m4b/oga 共 12 种格式互转,可调采样率/音质/声道,批量转换,右键一键转换"
version = "2.0.0"
icon = "./imgs/img.png"
[bmscriptsbox.runtime]
language = "python"
language_version = ">=3.8"
entry = "main.py"
terminal = "always"
binaries = [{name = "ffmpeg"}]
[bmscriptsbox.triggers.context_menu]
enabled = true
targets = ["files"]
filters = [".mp3", ".wav", ".flac", ".ogg", ".aac", ".wma", ".m4a", ".opus", ".ape", ".aiff", ".m4b", ".oga"]
[bmscriptsbox.triggers.shortcut]
enabled = true
input_type = "files"
filters = [".mp3", ".wav", ".flac", ".ogg", ".aac", ".wma", ".m4a", ".opus", ".ape", ".aiff", ".m4b", ".oga"]
[[bmscriptsbox.inputs]]
name = "target_paths"
label = "源文件"
type = "list"
pick = "files"
exts = [".mp3", ".wav", ".flac", ".ogg", ".aac", ".wma", ".m4a", ".opus", ".ape", ".aiff", ".m4b", ".oga"]
description = "要转换的音频文件(右键/快捷键传入,或启动界面选择)"
[[bmscriptsbox.params]]
name = "format"
label = "输出格式"
type = "str"
default = "mp3"
choices = ["mp3", "wav", "flac", "ogg", "aac", "opus", "wma", "m4a", "aiff", "ape", "m4b", "oga"]
choice_labels = { mp3 = "MP3", wav = "WAV", flac = "FLAC", ogg = "OGG", aac = "AAC", opus = "OPUS", wma = "WMA", m4a = "M4A", aiff = "AIFF", ape = "APE", m4b = "M4B", oga = "OGA" }
description = "目标音频格式"
[[bmscriptsbox.params]]
name = "output_dir"
label = "输出目录"
type = "str"
default = ""
description = "留空输出到源文件所在目录"
[[bmscriptsbox.params]]
name = "sample_rate"
label = "采样率"
type = "str"
default = "original"
choices = ["original", "8000", "16000", "22050", "44100", "48000", "96000"]
choice_labels = { original = "原始 (跟随输入)", "8000" = "8000 Hz", "16000" = "16000 Hz", "22050" = "22050 Hz", "44100" = "44100 Hz", "48000" = "48000 Hz", "96000" = "96000 Hz" }
description = "输出采样率"
[[bmscriptsbox.params]]
name = "quality"
label = "音质"
type = "str"
default = "192k"
choices = ["320k", "256k", "192k", "128k", "64k"]
choice_labels = { "320k" = "320kbps (最佳)", "256k" = "256kbps (高质)", "192k" = "192kbps (标准)", "128k" = "128kbps (较低)", "64k" = "64kbps (最小)" }
when = { field = "format", in = ["mp3", "ogg", "aac", "opus", "wma", "m4a", "m4b", "oga"] }
description = "有损格式的比特率(无损格式忽略)"
[[bmscriptsbox.params]]
name = "channels"
label = "声道"
type = "str"
default = "original"
choices = ["original", "stereo", "mono"]
choice_labels = { original = "原始 (跟随输入)", stereo = "立体声", mono = "单声道" }
description = "输出声道"
[[bmscriptsbox.params]]
name = "overwrite"
label = "覆盖已存在"
type = "bool"
default = false
description = "开启后覆盖同名输出文件,关闭则跳过"
[[bmscriptsbox.outputs]]
name = "output_files"
type = "list"
description = "成功转换的输出文件路径列表"
[[bmscriptsbox.outputs]]
name = "failed_files"
type = "list"
description = "转换失败的文件路径列表"
[bmscriptsbox.node]
enabled = true
[bmscriptsbox.schedule]
enabled = true
[bmscriptsbox.params_form]
enabled = true
免责声明
所有脚本由用户通过开源仓库自行发布。本站仅提供索引服务,"不忙脚本盒子"仅提供展示与安装服务。请在使用前仔细核实脚本内容,作者不对其安全性、准确性及适用性作任何保证。