一、音频技术
1. 音频的基本概念
声音与音频信号:声音是由物体振动产生的机械波,音频信号是声音信号的数字表示。音频信号可以是模拟信号(如麦克风采集的声音)或数字信号(如MP3、WAV文件)。
频率与振幅:
- 频率:声音的高低,单位是Hz。
- 振幅:声音的响度,通常用dB表示。
2. 音频的数字化过程
- 采样(Sampling):将模拟音频信号转换为离散的数字信号。采样率(例如44.1kHz)决定了采样频率,必须至少是音频信号中最高频率的两倍。
- 量化(Quantization):对采样得到的模拟信号值进行离散化,转化为数字信号。
- 比特深度(Bit Depth):表示每个采样点的精度,决定动态范围,常见有16位、24位。
3. 音频压缩
- 有损压缩(如MP3、AAC):通过去除人耳不敏感的音频信息来减小文件大小。
- 无损压缩(如FLAC、ALAC):压缩后能完全恢复原始音频。
4. 时序同步:DTS与PTS
- DTS:解码时间戳,指示帧何时解码。
- PTS:展示时间戳,指示帧何时展示。
5. 音频格式
- WAV:未压缩格式,常用于高质量录制。
- MP3:有损格式,广泛用于音乐。
- AAC:高效的有损压缩格式,常用于视频音频部分。
- FLAC:无损格式,保留音频完整质量。
二、视频技术
1. 视频的基本概念
- 视频信号:由连续的图像帧组成,通过一定的帧率播放产生动态画面。
- 帧率(Frame Rate):每秒显示的帧数(fps)。常见帧率有24fps(电影)、30fps(电视、在线视频)、60fps(高质量视频)。
2. 视频编码与压缩
编码:将视频信号转换为数字数据的过程。常用的编码标准包括H.264、HEVC、VP9等。
压缩:视频压缩通过去除空间冗余(图像内)和时间冗余(帧间)来减少数据量。
- 空间冗余:图像内相邻像素之间的冗余信息,通过离散余弦变换(DCT)等方法去除。
- 时间冗余:相邻帧之间的冗余信息,使用运动补偿和帧间预测减少数据量。
3. 帧类型:I帧、P帧、B帧
- I帧(Intra-coded Frame):完全自包含的帧,独立编码,无需参考其他帧。
- P帧(Predicted Frame):通过参考前一个I帧或P帧来进行压缩。
- B帧(Bidirectional Predicted Frame):双向预测帧,依赖前后帧,压缩率高。
4. 帧内压缩(Intra-frame Compression)
- 定义:每个图像帧独立压缩,不依赖于其他帧。
- 特点:每一帧都是自包含的,解码时不依赖其他帧,压缩效率较低,通常用于I帧。
- 应用:在H.264、HEVC等视频编码中,I帧采用帧内压缩。
- 示例:H.264中的I帧是完全自包含的,每一帧都可以独立解码。
5. 帧间压缩(Inter-frame Compression)
- 定义:通过参考前后帧的差异来进行压缩,通常用于P帧和B帧。
- 特点:压缩效率高,因为它只编码帧之间的差异,而不是完整的图像数据。依赖其他帧,解码时需要参考前后帧。
- 应用:P帧和B帧使用帧间压缩,减少视频数据量。
- 示例:H.264中的P帧和B帧采用帧间压缩。
6. NALU(Network Abstraction Layer Unit)
- 定义:是H.264、HEVC等编码格式中的基本数据单元,用于在网络中传输压缩后的视频数据。
- 特点:包含头部信息和数据部分,数据部分存储具体的编码信息。
7. IDR帧(Instantaneous Decoding Refresh)
- 定义:一种特殊的I帧,允许解码器从此点开始独立解码后续所有帧。
8. 视频格式
- MP4:最常用的视频容器格式,通常封装H.264视频和AAC音频。
- MKV:支持多种编码格式、字幕、音频流。
- AVI:较老的容器格式,适用于多种编码格式。
- MOV:Apple的容器格式,常用于QuickTime。
三、音视频同步与时序
1. 时间戳:PTS与DTS
- PTS(Presentation Time Stamp):帧的展示时间,确保音视频同步。
- DTS(Decoding Time Stamp):帧的解码时间,确保按正确顺序解码帧。
2. 缓冲与流控制
- 缓冲区:用于存储音视频数据,以应对网络延迟和丢包,保证平稳播放。
- 流控制:根据网络状况动态调整音视频质量,避免卡顿和延迟。
3. 关键帧与非关键帧
- 关键帧(I帧、IDR帧):可以独立解码的帧。
- 非关键帧(P帧、B帧):依赖其他帧的帧,不能独立解码。
四、音视频编码与解码
1. 编码与压缩原理
- 有损压缩:如MP3、AAC、H.264,压缩过程中丢失部分数据,降低文件大小。
- 无损压缩:如FLAC、ALAC,压缩后无数据丢失,文件较大。
2. 运动补偿(Motion Compensation)
- 通过运动估计和补偿技术,减少帧间冗余,提高压缩效率。
五、流媒体与传输协议
1. RTMP(Real-Time Messaging Protocol)
- RTMP:实时消息传输协议,广泛用于视频直播。通过TCP传输数据,保证数据的可靠性和实时性。
2. HLS(HTTP Live Streaming)
- HLS:基于HTTP协议的流媒体协议,视频分段传输,客户端根据网络带宽动态选择不同质量的视频流。具有较高的延迟(15-30秒)。
3. DASH(Dynamic Adaptive Streaming over HTTP)
- DASH:开放标准的流媒体协议,支持多种编码格式,能够根据网络状况动态调整视频质量,比HLS具有更低的延迟和更高的自适应性。
六、容器格式与封装
1. 音视频容器格式
- 容器格式:用于存储音频、视频、字幕及元数据。常见的容器格式包括MP4、MKV、AVI、MOV等。
- MP4:最常用的视频容器格式,广泛支持H.264、AAC编码。
- MKV:灵活的容器格式,支持多种编码和附加功能。
- AVI:老旧格式,逐渐被更现代的容器取代。
- MOV:Apple开发的容器格式,主要用于QuickTime播放器。
2. 封装
- 封装过程:将编码后的音频流、视频流及其他附加数据(如字幕、元数据)打包成一个文件。