0%

音视频速览

一、音频技术

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. 封装

  • 封装过程:将编码后的音频流、视频流及其他附加数据(如字幕、元数据)打包成一个文件。