@audio/encode-mp3

中文文档
2.0.1发布于 2026/10/06MITTypeScriptES Module零依赖近 30 天下载 9208

通过 WASM 将 PCM 音频样本编码为 MP3 格式

中文使用文档
文档目录5 节
  1. 无缺口
  2. 选项
  3. 流线
  4. 流程输出
  5. 许可证

@ audio/ encode- mp3 (英语)

将PCM音频样本编码为MP3格式.
WASM (libmp3lame by wasm-media-encodeers)——在节点和浏览器中同时工作.

npm install @audio/encode-mp3

import mp3 from '@audio/encode-mp3';

const encoder = await mp3({ sampleRate: 44100, channels: 1, bitrate: 128 });
const chunk = encoder.encode(channelData); // → Uint8Array (MP3 frames)
const tail = encoder.flush();              // → Uint8Array (remaining)
// concatenate chunk + tail, then write encoder.head() over the start

无缺口

输出会以一个载有LAME标记的Info(CBR)或Xing(VBR)帧来开启:帧和字节计数,一个求取TOC,和编码器延迟(576个样本)并编出解码器trim(ffmpeg, mpg123, Apple's AudioToollbox, LAME's own),所以一个解码文件有源的确切长度和时间. 总数列于末尾: head() 之后 flush() 返回完成的框架(当一个导出时在 ID3 标记后),以便在开始时写入; 完整文件 encode.mp3(...) 联 合 国 @audio/encode 为了你 未喷射(管子),占位符仍然带有延迟,并带有 frames (准确的长度前面) 帧数和被垫也.

选项

选项默认说明
sampleRate—— 说抽样率(所需)
channels21 (莫诺语)或 2 (语法)
bitrate128Kbps 中的 CBR 比特率
quality—— 说VBR质量 0–9 (0=最佳). 如果设定了, 将覆盖比特率 .

流线

const encoder = await mp3({ sampleRate: 44100, channels: 1, bitrate: 192 });
const a = encoder.encode(chunk1); // → Uint8Array
const b = encoder.encode(chunk2); // → Uint8Array
const c = encoder.flush();        // → Uint8Array
// complete MP3 = concat(a, b, c), encoder.head() written over its start
encoder.free();

流程输出

chapters: [{ time, title }] (秒)成为ID3v2 CTOC/CHAP帧(ID3v2 章节框架增编),单位 writeMeta 我也一样. stream: true 放置标签( n)meta, (中文(简体) ), chapters)在第一帧前;上一章的结尾直到 head() 返回完成的标记 flush(),除非 frames 给出了精确的长度前面.

许可证

麻省理工学院

ॐ

版本与发布记录

@audio/encode-mp3 共发布 12 个版本,首次发布于 2026/04/04;过去 12 个月发布了 12 个版本。

版本发布日期距今
2.0.1latest2026/10/061 个月前
2.0.02026/09/291 个月前
1.4.02026/09/261 个月前
1.3.02026/09/261 个月前
1.2.22026/07/113 个月前
1.2.12026/07/113 个月前

关于 @audio/encode-mp3 的常见问题

@audio/encode-mp3 是什么?

通过 WASM 将 PCM 音频样本编码为 MP3 格式

如何安装 @audio/encode-mp3?

在项目目录运行 npm install @audio/encode-mp3,或使用 pnpm add / yarn add / bun add。

@audio/encode-mp3 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@audio/encode-mp3 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@audio/encode-mp3 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@audio/encode-mp3 可以商用吗?

@audio/encode-mp3 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@audio/encode-mp3 的下载量有多少?

根据 npm 官方下载统计,@audio/encode-mp3 在 2026/10/07 – 2026/11/05 这 30 天内被下载 9,208 次,日均约 307 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@audio/encode-mp3 还在维护吗?

最新版本 2.0.1 发布于 2026/10/06(1 个月前);至今共发布 12 个版本,其中过去 12 个月发布了 12 个;首次发布于 2026/04/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。