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