# 从视频里提取音频 — 只要声音，存成 WAV

把视频拖进来，声音就取出来了。画面从不解码，也不上传任何东西。

> 把 MP4、MOV 或 WebM 里的声音取出来，存成 WAV。视频不会离开你的设备，画面也从不解码，整个过程都在你自己的浏览器里跑。

这是一个浏览器交互工具，地址是 https://abox.tools/zh/extract-audio-from-video/。文件在运行该浏览器的设备上处理。主动分享和可选联网功能都在页面上说明。下文是它的文字说明；使用工具请打开该地址。

## 你的视频**在浏览器里处理**，无须上传处理。

浏览器自带的解码器只读取音轨。WAV 在本机写成 16 位 PCM 或 32 位浮点格式。此工具没有 MP3 编码器、上传步骤或网络功能。

- ✗ 不上传
- ✗ 不注册
- ✗ 无大小限制
- ✓ 断网可用
- ✓ 开源

## 不上传就把视频里的音频取出来的步骤

1. **把视频拖进来。** MP4、MOV、M4V 或 WebM，来自手机、相机、录屏工具，或者一次下载。读它的是你自己的浏览器，这里没有上传这一步可以省略。
2. **看看它读出了什么。** 时长、声道数和采样率，都直接来自文件本身。如果文件没写自己的采样率，页面会说出来，而不是悄悄重采样，再宣称什么都没动过。
3. **选择格式和声道。** 默认使用兼容性广的 16 位 PCM。选择 32 位浮点并保持声道不变，可保留解码后的采样值，不做舍入或截断。单声道会对声道取平均，并将立体声数据减半。
4. **存之前先听一遍。** 播放器里放的就是马上要下载的那个文件，不是视频。听着对，下载就对。
5. **拿走，或者接着往下传。** 下载这个 WAV，或者不先保存，直接送去剪辑或编辑。

## 说得更细的版本

[如何从视频提取声音](https://abox.tools/zh/guides/extract-audio-from-a-video/): 在本地将视频音轨提取为 WAV。选择 PCM16 或 Float32，保留声道或混为单声道，并在保存前检查。

## 工具箱里还有

- [音频剪辑](https://abox.tools/zh/trim-audio/): 边听边标出值得留的段落。它们会合成一个文件回来，就切在你说的位置。
- [音频编辑](https://abox.tools/zh/edit-audio/): 倒着放、快慢随你调、把录轻了的声音提上来，全在你这台机器上。
- [PDF 合并与拆分](https://abox.tools/zh/merge-pdf/): 挪动页面，不用往服务器跑一趟。
- [PDF 压缩](https://abox.tools/zh/compress-pdf/): 文档变小，不用送去任何地方。

## 常见问题

### 我的视频会被上传到什么地方吗？

不会。解码和写出都在你自己的浏览器里、你自己的硬件上完成。这个工具压根就没有网络功能，从不取任何东西，也从不发任何东西，页面的 `Content-Security-Policy` 里写着它允许联系的每一个地址，没有一个属于本站。与其听我们说，不如拔掉网线，照样把声音取出来。

### 能给我一个 MP3 吗？

此页面写出 WAV，而非 MP3。MP3 输出需要此工具没有提供的编码器。可选择兼容性广的 16 位 PCM 或 32 位浮点，均无需上传。WAV 的音频未压缩，因此文件更大；之后可用其他编辑器压缩。

### 画面会被看到吗？

不会，这里也没有任何东西能看。把文件交给浏览器的解码器，向它要音轨；视频轨从不解码、从不绘制，甚至到不了这个页面的代码里。`src/` 里没有任何视频解码器可以运行。出来的文件里只有声音。

### 它说读不到声音，可视频明明能正常播放。

那这个视频几乎可以肯定就没有音轨。录屏时没选麦克风，录出来是静音的；剪辑软件导出时把声音静音了，也是静音的。两者都能正常播放，因为有画面可放。提示先说这一种，因为它是两种原因里更常见的那个；另一种是这个浏览器读不了的格式。用播放器打开文件，找一找那个怎么调都没反应的音量条，这是分辨两者最快的办法。

### 我能打开哪些视频格式？

你的浏览器能解码的都行，实际上就是 MP4、M4V、MOV 和 WebM，另外还有所有音频格式。被挡在外面的还是本站各处都一样的那张短名单：AVI、WMV，以及大多数 MKV。你的浏览器读不了的文件会被拒绝，并说明原因，而不是走到一半才失败。

### 会损失音质吗？

16 位 PCM 会舍入解码后的采样值，并限制超出满幅范围的值。选择 32 位浮点并保持声道不变，可保留解码器的采样值，包括超出范围的值。单声道会对声道取平均。浮点无法恢复视频中已有的损失。检测到文件自身的采样率时就使用该采样率；否则页面会说明假定值。

### 为什么 WAV 比视频大这么多？

WAV 音频未压缩。44.1 kHz 的 16 位立体声每分钟约 10 MB。浮点会使采样数据加倍；单声道将立体声采样数据减半。文件生成完成前会显示输出大小。

### 视频最长能有多长？

输入在内存中读取和解码，整个 WAV 也在内存中组装。较长的录音可能超出可用内存；超过 WAV 格式 4 GB 上限的输出会在写入采样前被拒绝。取消会使待完成的读取结果失效，或停止分块混合与写入。浏览器的解码可能继续到返回时，但取消后的结果不会被采用。

### 能剪短或者调大音量吗？

能，但不在这里，这个页面只做一件事。有结果之后，下载旁边会出现一排链接，不用先保存就把它直接送进[音频剪辑](https://abox.tools/zh/trim-audio/)或者[音频编辑](https://abox.tools/zh/edit-audio/)，那两个也一样不上传。

### 免费吗？需要注册吗？

免费，没有账号，不用登录，没有试用期，也不限制你打开多少个视频。本站有广告，站点靠它维持；广告拿不到关于你文件的任何东西。

### 断网还能用吗？

能。页面加载一次之后拔掉网线，它照样工作。这也是证明没有上传的最简单办法：一个把你的视频送出去处理的工具，在你拔线的那一刻就停了。

## 这条隐私承诺怎么核实

- **处理在这个浏览器里完成。** 本工具在浏览器里处理输入和结果，处理代码不把它们上传去处理。Content-Security-Policy 限制可用资源和连接目的地，但已允许的主机仍可接收请求。策略不检查载荷，不能单独证明什么都没有发出。请把具体操作的请求与源码核对，或断网完成该本地操作。
- **画面根本不会被解码。** 这里只要音轨。每一帧都不读、不解码、不绘制、也不看一眼，因为这个页面上就没有能做这件事的代码，出来的文件里只有声音。这不是一句克制的承诺：把字节交给 `decodeAudioData`，它返回的就是声音，而 `src/` 里没有任何视频解码器可以运行。
- **解码器就是你浏览器里本来就有的那个。** 这里没有为读你的格式而下发任何东西，也没有为读它去求这个页面之外的任何东西。哪些文件能打开，就是你的浏览器本来能播放的那些。
- **WAV 格式明确说明采样精度。** 16 位 PCM 为了兼容性，会舍入并限制解码后的采样值。保持声道不变时，32 位浮点会保留这些值。单声道会对各声道取平均。两种格式均在本机写入，不上传任何内容。
- **Google 加载了什么，又没拿到什么。** 广告和统计脚本来自 Google，捐赠按钮来自 Buy Me a Coffee。它们谁也没拿到关于你视频的任何东西：文件、采样、文件名、大小、时长，都没有。
- **断网可用。** 拔掉网线，这个工具一点变化都没有，因为它里面本来就没有联网这一步。这是最简单的证明。

**你可以自己核对。**上面这些不用你信。这个页面是仓库里的模板和配置生成出来的，构建脚本你能读，也能自己跑一遍，跑出来的结果就提交在 `dist` 分支上。拿实际发给你的内容，跟你自己从源码构建出来的结果对一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先读的几个文件：`config/site.toml` 里是 Content-Security-Policy，这里唯一的解码器，以及画面为什么从不被索取，在 `src/shared/audio-decode.js`；防止你的录音被悄悄重采样的文件头识别，在 `src/shared/samplerate.js`。
