把视频里的音频”抽出来”看着简单——选时间段、选格式、点导出。但底层做的事其实包括”理解原视频用什么编码”、“决定要不要解码”、“重新编码到目标格式”几个步骤。这篇讲清容器与编码的关系、流复制和重编码的取舍、本工具的实际行为。
容器(container)vs 编码(codec)
视频文件的扩展名描述的是容器,容器里装的才是编码:
| 容器 | 视频编码(典型) | 音频编码(典型) |
|---|---|---|
.mp4 / .m4v | H.264 / H.265 | AAC |
.mov | H.264 / ProRes | AAC / PCM |
.webm | VP9 / AV1 | Opus / Vorbis |
.mkv | H.264 / H.265 / AV1 | AAC / Opus / FLAC / DTS |
.avi | XVID / DivX | MP3 / AC3 |
.flv | H.264 | AAC / MP3 |
实际意义:你看到的 .mp4 文件,里面音轨大概率是 AAC——这是手机录像、剪映、达芬奇、Premiere 的默认。
两条路线:流复制 vs 重编码
原视频 (MP4 + AAC)
│
├─ 流复制 (copy) ──→ .m4a (仍是 AAC)
│ • 极快(IO 瓶颈,5 分钟视频 < 1 秒)
│ • 零质量损失
│ • 但只能输出和原编码相同的格式
│
└─ 重编码 (re-encode) ──→ MP3 / WAV / AAC(不同编码)
• 慢(CPU 瓶颈,5 分钟视频 5-30 秒)
• 重新编码会有有损损失(除非选 WAV)
• 可输出任意目标格式 + 精确切时间段
本工具的选择:始终重编码
| 维度 | 本工具行为 |
|---|---|
| 引擎 | ffmpeg.wasm(浏览器本地) |
| 输出编码 | 总是重新编码(无 copy 模式) |
| 输出格式 | MP3 / WAV / AAC |
| 时间段裁切 | 样本级精确 |
| 处理速度 | 5 分钟视频约 5-15 秒 |
| 输入格式 | MP4 / MOV / WebM / MKV / AVI 等 |
为什么不做流复制:
- 用户大多数想要 MP3——这必然要从 AAC 重编码
- 时间段裁切要样本级精确——必须重编码
- 工具简单确定性优于”快几秒”——5 分钟视频差几秒无所谓
想要极速流复制:用桌面 ffmpeg 命令行:
ffmpeg -i video.mp4 -vn -c:a copy audio.m4a
输出格式选什么
| 用途 | 推荐 |
|---|---|
| 兼容性优先(邮件附件、嵌入文章、发微信) | MP3 192k |
| 苹果生态、自己听 | M4A(AAC 192k) |
| 后续要剪辑 / 加滤镜 | WAV(避免链式有损) |
| 转写文字 / 输入 ASR | MP3 96k(讲话足够) |
| 学习外语 / 反复听 | MP3 192k |
默认推荐:MP3 192k——所有设备都能播、体积合理、音质对讲话/音乐都够。
时间段裁切的精度
本工具支持指定起止时间——精度到毫秒:
| 输入 | 实际处理 |
|---|---|
| 0:30 | 30.0 秒 |
| 1:30.5 | 90.5 秒 |
| 0:01:30 | 90 秒 |
实际切点精度:
- WAV:样本级精确(44100 Hz → 22.7μs)
- MP3 / AAC:重编码引入新帧边界,但起止点对齐到样本,不会差一整帧(< 1ms)
想要绝对样本级:导出 WAV,自己处理。
体积估算
按照”码率 × 时长”线性增长:
| 码率 | 1 分钟 | 10 分钟 | 1 小时 |
|---|---|---|---|
| MP3 96k | 720 KB | 7.2 MB | 43 MB |
| MP3 128k | 960 KB | 9.6 MB | 58 MB |
| MP3 192k | 1.4 MB | 14 MB | 86 MB |
| MP3 320k | 2.4 MB | 24 MB | 144 MB |
| AAC 192k | 1.4 MB | 14 MB | 86 MB |
| WAV 44.1k | 10 MB | 100 MB | 600 MB |
经验:1 小时讲座选 MP3 96k 够(讲话),1 小时音乐至少 192k。
几个常见踩坑
1. 视频”没声音”或音轨为空
源视频本身就没有音轨——监控录像、屏幕截录、纯无声片头都可能。先在播放器里确认有声音再来抽。
2. 多音轨视频只抽了一条
电影、纪录片常有多语言音轨(国语、英语、导演评论)。本工具只取默认那条(通常第一条)——想抽其他音轨需要桌面 ffmpeg:
ffmpeg -i movie.mkv -map 0:a:1 -c:a copy track2.aac
3. 加密视频抽不出
iTunes 购买的 m4v、Netflix 离线缓存有 DRM 保护——任何工具都解不开(合法层面)。
4. 提取后是 .aac 扩展名播放器不认
本工具 AAC 输出是裸 AAC 流(.aac 扩展名),部分播放器不识别。改成 .m4a 扩展名手动包到 MP4 容器 或重新转成 MP3。
当前工具的真实边界
| 维度 | 实际能力 |
|---|---|
| 输入容器 | MP4 / MOV / WebM / MKV / AVI / FLV / WMV / 3GP |
| 输入音频编码 | AAC / Opus / Vorbis / MP3 / AC3(基本)/ 其他多数浏览器原生支持的 |
| 输出格式 | MP3 / WAV / AAC(128/192/320 kbps) |
| 时间段裁切 | 起止时间,样本级精确 |
| 多音轨选择 | 不支持(取默认音轨) |
| DRM 加密 | 不支持 |
| 处理位置 | 浏览器本地(不上传) |
一句话总结
视频里的音频通常是 AAC 编码 + 容器(MP4/MOV/WebM);理论最快是流复制(直接搬到 .m4a),但本工具为了支持 MP3 / WAV / 时间段裁切始终重编码——慢几秒换来格式确定性;要 MP3 选 192k,要无损选 WAV,要小选 96k 讲话足够。