balrogg:恶魔般压缩(最高15%)无损 Vorbis/Opus 重新压缩器
摘要
balrogg 是一个命令行工具,可无损重新压缩 Ogg Vorbis 和 Opus 文件,将其大小减少最高15%,其中 Vorbis 文件减少8-12%,Opus 文件减少3-8%。
查看缓存全文
缓存时间: 2026/09/03 14:04
iczelia/balrogg
来源:https://github.com/iczelia/balrogg
balrogg
balrogg 可对 Ogg Vorbis 和 Opus 文件进行无损重压缩。压缩后的归档文件通常比 .ogg 文件小 8-12%,比 .opus 文件小 3-8%。
balrogg 采用 GNU GPL 第三版许可证。详情参见 COPYING。
问题反馈请提交至 Kamila Szewczyk。
项目托管于 GitHub。
快速开始
balrogg e music.ogg music.blr
balrogg d music.blr music.ogg
balrogg -b e *.ogg *.opus
e 表示压缩,d 表示解压。balrogg 会自动检测编解码器。使用 -b 参数时,系统将利用可用的 CPU 核心和内存并行处理所有后续文件。编码时自动添加 .blr 扩展名;解码时则移除该扩展名。较大的输入文件将优先处理。
安装方法
可通过系统包管理器安装,或从 GitHub Releases 下载二进制文件。
若需构建发行版压缩包,请执行:
./configure
make
sudo make install
本项目使用 C99 标准,仅依赖 C 标准库和数学库。
src/opus 目录下的 Opus 解析器源自 libopus。
| 配置选项 | 作用 |
|---|---|
--enable-sanitizers | 为测试启用 ASan 和 UBSan |
--disable-simd | 仅构建可移植混音器 |
--with-windows-target=win95 | 面向 i486 架构的 Windows 95 系统(使用 MinGW 32 位工具链) |
从 Git 仓库构建时,需先执行 ./bootstrap(需要 autoconf 和 automake 工具)。
压缩级别
使用 -1 至 -9 选择压缩级别,默认为 -9。
至 -4 级别前,每个级别会增加一个残余模型阶段并影响解压速度。更高级别仅扩展参数搜索范围,因此 -4 到 -9 的解压速度相同。
针对 5MB 音乐文件的测试结果:
| 级别 | Vorbis | Opus |
|---|---|---|
-1 | 体积缩小 8.3%,处理速度 6.4 MB/s | 体积缩小 4.0%,处理速度 4.2 MB/s |
-9 | 体积缩小 9.8%,处理速度 2.9 MB/s | 体积缩小 4.8%,处理速度 2.4 MB/s |
注意事项
编码器会拒绝无法精确复现的文件,包括:校验和错误、无效页序列、不支持的 Vorbis 特性或缺少最终流结束页的文件。
Opus 支持范围限于单一单声道/立体声音频流(通道映射族 0)。不支持链式或多声道 Opus 文件。
拒绝处理时将输出诊断信息并以状态码 1 退出。
退出状态
| 状态码 | 含义 |
|---|---|
| 0 | 成功 |
| 1 | 格式错误、不支持或无法识别的输入 |
| 2 | 用法错误 |
| 3 | 文件访问错误 |
| 4 | 内部错误 |
批处理模式将返回所有文件中最高的非零状态码。
性能与可移植性
每个文件使用独立线程处理,输入数据与归档文件均存储于内存。5MB 的 Vorbis 文件在 -4 级别下约需 40MB 内存,-9 级别下约需 70MB。由于模型初始化开销,处理小文件时单位字节速度较慢。
支持的主机会应用 2GiB 进程内存限制以拒绝不合理分配。可通过 BLR_MEMCAP 设置其他内存上限(单位 MiB),或设为 0 禁用限制。
归档文件具有跨平台可移植性。
Windows 构建使用 MinGW 工具链:
./configure --host=x86_64-w64-mingw32 CC=x86_64-w64-mingw32-gcc LDFLAGS=-static
make
Windows 95 构建版本使用精简的 KERNEL32 运行时库,面向 i486 架构:
./configure --host=i686-w64-mingw32 --with-windows-target=win95 \
CC=i686-w64-mingw32-gcc LDFLAGS=-static
make && make win95-check
win95-check 会验证加载器基线、PE 标志和 KERNEL32 导入。
MS-DOS 构建使用 DJGPP 工具链,需配备 DPMI 主机(如 CWSDPMI)的 i386 系统:
./configure --host=i586-pc-msdosdjgpp CC=i586-pc-msdosdjgpp-gcc
make
DOS 批处理模式会修改文件扩展名并串行处理。song.ogg 会先转为 song.blr,解压时根据格式转为 song.ogg 或 song.opu(Opus 格式)。
相似文章
GetCompress
GetCompress 是一个无损媒体压缩工具,无需切换上下文。
MediaOptim
MediaOptim 是一款本地压缩图片、视频和音频的工具,无需上传文件即可节省存储空间。
@xenovacom: Bonsai 27B 彻底改变了本地 LLM 的游戏规则。1位量化将其从 54GB 缩小到仅 3.8GB(减少 93%),同时……
Bonsai 27B 通过 1 位量化实现了 93% 的体积缩减,同时保留了 90% 的智能,借助自定义 WebGPU 内核实现本地浏览器推理。
Bonsai 2 27B:在更小9倍的占用空间中实现近无损压缩
Bonsai 2 27B是一个压缩的AI模型,能在更小9倍的占用空间中实现近无损性能,并提供使用Prism的llama.cpp分支的设置指南。
@0x0SojalSec: 这个工具将6000万个文本块从201GB压缩到仅6GB,且精度无损,可在本地笔记本上运行
该工具将6000万个文本块从201GB压缩到6GB,用于RAG且精度无损,使得在笔记本上实现强大的本地检索增强生成成为可能。