1. 音视频录制原理
典型的音视频录制流程可拆分成音频流和视频流两部分:
麦克风音频采集 --→音频处理 --→采样帧队列 --→音频编码 --→音频包队列 ---
↑ ↓
时钟 复用器 ---→文件
(为音视频生成时间戳,控制采集节奏,保证音画同步) (音视频封装)
↓ ↑
摄像头视频采集 --→图像处理 --→图像帧队列 --→视频编码 --→视频包队列 ---
音视频播放原理及为其逆向流程;
2. 视频基本概念
- 分辨率:图像或视频的分辨率指垂直像素数和水平像素数;例如1080P(1920×1080)及水平1920个像素点,垂直1080个像素点。
- 位深:每个像素或颜色通道使用多少个bit来存储;例如RGB 8bit,每个色彩通道8bit能表达255个值(即256种颜色);因此位深越高,表达的颜色越丰富,图像质量越好,但存储和带宽需求也越高。
- 帧率(FPS):视频每秒播放的图像帧数,帧率越高画面越流畅;
- 码率:单位时间内传输或存储的数据量(bps(比特/秒)、Kbps(1000bps)、Mbps);码率最本质描述的是"编码后的数据流(Data Stream)每秒有多少 bit"。
- YUV:将亮度分量Y和色度分量UV分开进行表示的像素编码格式;优点:没有UV分量信息一样可以显示完整图像(黑白),同时可以降低色度的采样而不会对图像质量影响太大。
- I444(YUV444)格式,表示色度没有下采样,每个Y分量对应一个U分量和V分量;每个分量位深为8bit的情况下,YUV444一个像素点占24bit。
- I422(YUV422)格式,表示2倍的水平下采样,即每两个Y分量公用一个U分量和V分量;每个分量位深为8bit的情况下,YUV422一个像素点平均16bit。
- I420(YUV420)格式,表示2倍的水平下采样和2倍的垂直下采样,即每四个Y分量公用一个U分量和V分量;每个分量位深为8bit的情况下,YUV422一个像素点平均12bit。
- YUV和RGB格式通过对应公式可互相转换。
- 其余概念之后遇到再做补充。

- GOP(Group of Pictures,图像组):是视频编码里的一个结构单位 ,用来描述一段视频帧之间的参考关系与组织方式。GOP = 一组按照"关键帧 + 预测帧"结构组织起来的视频帧序列。
- I帧(Intra frame,关键帧/完全帧):
- 独立解码(不依赖其他帧);
- I帧所占数据的信息量较大;
- GOP越长:I帧越少、平均码率更低、压缩更高效;GOP短:I帧多、文件更大、质量更稳定但效率低。
- I帧是P帧和B帧的参考帧,其质量直接影响到同GOP以后各帧的质量.
- I帧是GPO的基础帧(第一帧),在一组中只有一个I帧。
- P帧(Predicted frames,前向预测帧):依赖参考帧(前一个I帧或P帧)进行差分编码的帧类型。P帧不存完整画面,只存"和前面参考帧的变化"。
- B帧(双向预测帧):B帧在解码时同时参考"前面的帧"和"后面的帧",通过双向预测来最大化压缩效率。
- PTS(显示时间戳):这一帧/这一段音频"应该在什么时候被播放出来",PTS是音视频同步与播放调度的核心依据,如果没有 PTS,播放器不知道顺序。
- DTS(解码时间戳):指导解码器按正确顺序解码帧,DTS决定哪一帧先进入解码器。例如,解码顺序(DTS):I → P → B,播放顺序(PTS):I → B → P;
- 常见视频压缩算法:
- H.264/AVC(MPEG)
- H.265/HEVC(MPEG)
- VP8(Google)
- VP9(Google)
3. 音频基本概念
- 采样频率:每秒采样的个数,例如96KHZ表示每秒采样96000次。
- 采样精度(位深):每一个音频采样点用多少"二进制位"来表示幅度(振幅)信息。例如,8bit能表示256个音量等级。常用:8bit、16bit、24bit.
- 通道数:描述同时存在多少条独立音频波形。常用:单声道、双声道(立体声)、5.1环绕声(通道数6)
- 码率:参考视频码率。没有压缩的音频数据码率 = 采样频率 * 采样精度 * 通道数。
- 帧:每次编码的采样单元数,例如MP3通常1152个采样点为一个编码单元(即为1帧),AAC通常1024个采样点为一个编码单元。
- 常见音频编码器:
- OPUS
- MP3
- AAC
4. 封装格式(容器)
把已经编码好的音频流、视频流、字幕、时间信息等"打包"到一个文件结构中,并提供索引与同步机制。
常见封装格式:
- MP4
- MKV
- MPEG-TS
- WebM
旧格式---逐渐淘汰
- AVI
- FLV
经典组合:H264+AAC封装为MP4;