v0.1.0 开源 · CC BY-NC 4.0 · Windows

一个会
回读校验的转换器

拖音频进来,选格式,按一下。源文件永不改动, 每次转完都用 ffprobe 回读产物,确认它真的就是你想要的东西。

单个 33 MB exe · 不需要 Python / Node / Java / 浏览器 · 35 项自检

AudioForge 已导入的音频列表,显示编码、采样率、声道、时长与有损无损
每次导入都用 ffprobe 读出编码、采样率、声道、时长、有损无损。
7
种目标格式
6
套配色主题,实时切换
35
项自检,真跑转码
0
个源文件被改动
为什么这么做

转码工具最恶劣的失败模式
是骗你说它成功了

转完了、看着没问题、文件其实是坏的。所以每次输出都要回读校验 —— 多花十毫秒买个保险。

🔍

先探测再转码

读不到时长或采样率就不转。空文件、随机字节、文本改名成 .mp3 —— 一律拒掉并说清原因。

♻️

源文件只读

输出永远写到独立目录。同名自动加序号:song.mp3、 song (2).mp3。没有「覆盖源文件」这个选项,以后也不会有。

✅

往返验证

转完用 ffprobe 回读产物,校验编码、时长、无损判定。 自检里 7 种格式全部真转一遍再回读。

🧹

失败不留痕

输出先写 .part,成功才改名。一次失败的运行什么都不留下 —— 没有半截文件、没有临时文件。

⏭️

跳过没意义的活

无损转无损直接跳过并写明原因:FLAC 转 WAV 只是换容器,还平白涨一倍。

🔐

对 DRM 诚实

KGM / VPR / QMC / NCM 会被认出来并单独归类。说它「损坏」是撒谎 —— 文件是好的,只是有 DRM。不做任何解包。

七种目标

选格式,选码率

输入容器不限 —— 凡 ffprobe 认得出来的都行 (FLAC / WAV / AIFF / M4A / MP3 / AAC / Opus / OGG / WMA / APE / WavPack …)。

.mp3
MP3
libmp3lame · 有损 · 三档码率
.m4a
AAC
aac · 有损 · 192 kbps
.opus
Opus
libopus · 有损 · 160 kbps
.ogg
Vorbis
libvorbis · 有损 · 质量预设
.flac
FLAC
flac · 无损
.m4a
ALAC
alac · 无损
.wav
WAV
pcm_s16le · 无损
批量体检

这堆文件里
到底有多少是废的

拖一个文件夹进来(会递归整棵目录树),或者命令行:
AudioForge.exe --audit D:\Music

  • ✓
    能转 真音频,编码 / 采样率 / 声道 / 时长都是从文件里读出来的。
  • ✕
    DRM 加密 KGM / VPR / QMC / NCM。文件是完好的,只是没提供方的 app 播不了。 本工具不做任何解包。
  • ✕
    损坏 / 不是音频 被截断的 FLAC、空文件、文本改名成 .mp3 —— 每条都写清具体原因。
  • ✕
    没有「转完删源文件」 现在没有,以后也不会有。
  • ✕
    不捆绑编解码器 ffmpeg 由你自己安装,本项目不分发。
  • ✕
    不联网、不上报 完全离线。你文件的任何信息都不会离开它。
# 一次转换实际做了什么 cmd = build_cmd(src, dst_partial, target, bitrate) out_opts = ["-f", target.fmt, "-map_metadata", "0"] cmd = cmd[:-1] + out_opts + [dst_partial] # ^ 显式指定容器:中间文件叫 # song.mp3.part,ffmpeg 认不出 # .part 是什么格式 # # ... 跑 ... if proc.returncode != 0: dst_partial.unlink() # 什么都不留 # 然后把结果读回来校验 back = probe(dst) assert back.codec == expected assert abs(back.duration - src.duration) < 0.3
外观

六套主题,不用重新打包

右上角切换,选择直接写回 settings.yaml,重启还在。

Tokyo Night默认
Rosé Pine柔和对比
Ink近黑
Paper浅色
Studio Light暖白
Studio Dark中性

在你在乎的机器上试一下

单个 exe,不装环境,不装依赖。先看它查出了什么,再决定转不转。

许可:CC BY-NC 4.0 — 可以修改和二次开发, 必须署名 Matou1118,不允许商用。 条款全文 · Full terms