VOD 深度解析 第 3 部分:音频基础 —— 让声音变小
深入理解数字音频的工作原理:采样率、位深、声道、AAC 对比 Opus 对比 Dolby Atmos、多语言音轨、响度归一化,以及实用的 ffmpeg 配方。
这是 VOD 流媒体深度解析 系列的第 3 部分。
声音如何变成数字#
声音是空气的振动 —— 一段连续的波形。计算机只能存储数字,无法存储连续的波。因此需要两个步骤:
- 采样(Sampling):以固定间隔测量波形的高度
- 量化(Quantization):把每次测量结果转换成一个数字
Amplitude
▲
│ ● ● ● Sample points
│ ● ● ●
│ ● ●
│ ● ● ●
└──────────────────────► Time
↑ ↑ ↑ Sample N times per second — N is the "sample rate"
采样率#
单位:Hz(赫兹 —— 每秒采样次数)
| 采样率 | 使用场景 |
|---|---|
| 8 kHz | 电话语音 |
| 16 kHz | 语音识别、VoIP(Zoom/Teams) |
| 22.05 kHz | 复古游戏、AM 广播 |
| 44.1 kHz | CD 音频,音乐首选 |
| 48 kHz | 视频行业默认值(电影、流媒体、广播) |
| 96 kHz | Hi-fi 录音 |
| 192 kHz | 专业录音棚 |
奈奎斯特定理(Nyquist theorem):要还原频率 F,采样率至少需要达到 2F。人耳听力上限大约为 20 kHz,因此 44.1/48 kHz 刚好够用(并留有少量余量)。
对于 VOD,统一采用 48 kHz。如果你的源素材是 44.1 kHz,请在转码时用 -ar 48000 进行重采样。
位深#
每个采样使用多少比特:
| 位深 | 响度级数 | 使用场景 |
|---|---|---|
| 8-bit | 256 | 复古游戏、电话 |
| 16-bit | 65,536 | CD、消费级流媒体 |
| 24-bit | ~16.7M | 专业录音 |
| 32-bit float | 天文数字级 | 音频制作的内部格式 |
大多数视频音频为 16-bit、48 kHz。
声道#
一个**声道(channel)**就是一条独立的音轨:
| 声道 | 名称 | 配置 | 应用于 |
|---|---|---|---|
| 1.0 | 单声道(Mono) | 单个声道 | 电话、老式电视 |
| 2.0 | 立体声(Stereo) | 左 + 右 | 音乐、多数视频 |
| 5.1 | 环绕声 | 前左 + 中置 + 前右 + 后左 + 后右 + LFE(.1 = 低音炮) | 影院、家庭影院 |
| 7.1 | 环绕声 | 5.1 + 两个侧向声道 | 高端家庭影院 |
| 7.1.4 | Atmos 等 | 7.1 + 4 个顶置声道 | Dolby Atmos |
5.1 surround layout (top-down view):
FL ──── C ──── FR
│ 🧑 │
│ │
SL ──┻━━━━──SR
LFE
音频码率:多少 kbps 才够?#
音频码率同样是以每秒比特数计量的,但比视频小得多 —— 通常只有视频码率的 5–10%。
| 码率 | 主观感受 | 典型用途 |
|---|---|---|
| 32 kbps | 语音可用,音乐失真 | 极低带宽 |
| 64 kbps | 语音清晰,音乐勉强 | 低码率场景 |
| 96 kbps | 音乐可接受 | 广播、YouTube 默认 |
| 128 kbps | 音乐听感良好 | 流媒体默认值 |
| 192 kbps | 高保真 | 高端音乐流媒体 |
| 256 kbps | 发烧级 | Apple Music |
| 320 kbps | MP3 上限 | 音乐爱好者 |
| 无损(FLAC) | 透明无损 | Hi-fi 小众 |
对于 VOD 而言:128 kbps 的立体声 AAC 在绝大多数场景下都是正确答案。
主流音频编解码器#
AAC(Advanced Audio Coding)—— 流媒体默认之选#
- 出品方:MPEG(与 H.264 出自同一组织)
- 年份:1997
- 兼容性:所有视频平台、浏览器和手机
- 变种:
- AAC-LC(Low Complexity):最常见。HLS/DASH 默认。
- HE-AAC(High Efficiency):在低码率(<64 kbps)下表现更好
- HE-AAC v2:HE-AAC + 参数化立体声,在 48 kbps 下效果尚可
MP3 —— 已退役#
经典之作,但效率不及 AAC。原始专利已于 2017 年到期。新项目没有理由再使用 MP3。
Opus —— Web 新秀#
- 开源、免版税
- 从 6 kbps(语音)到 510 kbps(音乐)均表现优异
- WebRTC 默认编解码器,Discord 也在使用
- 但其 HLS/DASH 兼容性落后于 AAC;iOS/Safari 支持有限
Dolby 家族 —— 影院级#
| 编解码器 | 使用场景 |
|---|---|
| AC-3(Dolby Digital) | 5.1 环绕声、蓝光、传统高清电视 |
| E-AC-3 / DD+(Dolby Digital Plus) | 5.1/7.1、流媒体电影 |
| Dolby Atmos(E-AC-3 + JOC 或 AC-4) | 空间音频、高端平台 |
Netflix、Disney+ 和 Apple TV+ 上的 Dolby Atmos 是高端订阅的标志。
FLAC / ALAC —— 无损#
无损压缩可将体积减小 50–70%,同时完美保留原始 PCM 数据。用于 Apple Music 无损档位和发烧场景。不适合视频流媒体 —— 码率太高。
多语言音轨#
单个视频文件可以携带多条音轨:
MP4 file
├── video track (H.264)
├── audio track 1 (AAC, English)
├── audio track 2 (AAC, Chinese)
├── audio track 3 (AAC, Japanese)
└── subtitle track (WebVTT)
流媒体协议(HLS/DASH)支持独立音轨投送 —— 播放器只会下载用户选定的语言:
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="en",NAME="English",DEFAULT=YES,URI="audio/en/index.m3u8"
#EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="audio",LANGUAGE="zh",NAME="中文",URI="audio/zh/index.m3u8"
关于这部分内容,第 5 部分:流媒体协议 中会有更多讲解。
响度归一化#
有没有注意过,广告插进来时音量会突然飙升?那是因为不同内容的响度水平相差悬殊。
**响度归一化(Loudness normalization)**会把所有内容调整到统一的主观感知响度(而非峰值音量)。
常见标准#
| 标准 | 目标响度 | 使用方 |
|---|---|---|
| EBU R128 | -23 LUFS | 欧洲广播 |
| ATSC A/85 | -24 LUFS | 北美广播 |
| Apple Music / Spotify | -14 LUFS | 音乐流媒体 |
| YouTube | -14 LUFS | 默认 |
| 短视频 / 移动端 | -16 至 -14 LUFS | 手机扬声器范围 |
LUFS(Loudness Units Full Scale,满量程响度单位)是衡量主观感知响度的国际标准。
ffmpeg 响度归一化#
# Normalize audio to -14 LUFS
ffmpeg -i input.mp4 -af loudnorm=I=-14:TP=-1.5:LRA=11 -c:v copy output.mp4
动手实践:检查与转码音频#
查看视频中的音轨#
ffprobe -v error -show_streams -select_streams a input.mp4
典型输出:
codec_name=aac
sample_rate=48000
channels=2
channel_layout=stereo
bit_rate=128000
统一为 AAC 48 kHz 128 kbps 立体声#
ffmpeg -i input.mov \
-c:a aac -b:a 128k -ar 48000 -ac 2 \
-c:v copy \
output.mp4
-c:a aac:音频编解码器 AAC-b:a 128k:128 kbps 码率-ar 48000:48 kHz 采样率-ac 2:2 声道(立体声)-c:v copy:原样复制视频流(省时)
关键要点#
- 数字音频需要采样率(时间密度)和位深(幅度精度)。
- VOD 默认值:48 kHz 采样率、16-bit 位深。
- 消费级流媒体默认使用立体声(2.0);影院使用 5.1 / Atmos。
- 128 kbps 的 AAC-LC 是 VOD 的默认音频设置。
- 单个视频文件可以携带多条音轨(多语言)。
- 响度归一化(EBU R128 / -14 LUFS)可以解决“广告太吵”的问题。
上一篇: 第 2 部分:视频编解码器
参考资料
- RFC 6716: Definition of the Opus Audio Codec — IETF
- FFmpeg documentation — FFmpeg
常见问题
流媒体视频的音频码率设多少合适?
采样率 44.1 kHz 和 48 kHz 有什么区别?
什么是响度归一化?为什么广告声音总是特别大?
微信扫码
用微信扫一扫,把文章带到聊天或朋友圈。
讨论
用 GitHub 账号评论 —— 评论存放在本仓库的 Discussions 里。
继续阅读
- AI 与 Agent
我不再蹲模型发布了:换了半年最强模型,我的幻觉一点没少
半年里 Opus 主力型号发了四代、价格没动,我天天拿最新模型干活,热情却没了、幻觉也没少。这篇把六条困惑一条条摊开:榜单、幻觉、真实提效、harness、对 Agent 的过度依赖,以及自己被提速多少的错觉。
- AI 与 Agent
提示缓存(一):到底缓存了什么
prompt caching 省下的不是网络往返,而是 prefill 阶段的算力。本文讲清 KV cache 从哪来、前缀哈希为什么要求逐 token 一致、TTL 为什么必须存在,以及缓存写入为什么会比不缓存更贵。
- AI 与 Agent
提示缓存(二):五家厂商三家云的账单差异
AWS 文档说 Claude Sonnet 4.5 在 Bedrock 上要 4096 token 才能缓存,我实测是 1024——和一方 API 一样。本文对照五家模型厂商与三家云的当期倍率、TTL 档位、跨区域行为,并区分哪些数字是实测的、哪些只是文档值。
- AI 与 Agent
提示缓存(三):开了却没命中,怎么查
提示缓存失效几乎不报错——推理成功、日志干净、只有账单变贵。本文按出现频率拆四类元凶:前缀混进易变内容、序列化顺序抖动、工具顺序不稳、中间层静默吞掉缓存标记,并给出一个跨厂商的命中率自检脚本。