Bootstrap

音视频开发系列(59)音视频基础知识

从这篇开始我们进入ffmpeg系列的学习实践,作为开篇,我们先来了解下音视频相关的基础知识。

一、视频播放器原理

图片来源:[基于FFmpeg+SDL的视频播放器的制作——雷霄骅]

雷神的这张图很清晰的说明了视频播放的流程:
解封装—》音/视频解压缩—》音视频编码—》音视频裸数据PCM和YUV —》音视频同步处—》音频播放、视频渲染

二、音频的基本知识

对声音将模拟信号转为数字信号,要经过三个步骤:采样、量化、编码

人耳能够听到的声音的频率范围是20Hz~20KHz。根据奈奎斯特采样原理,按比声音最高频率高2倍以上的频率对声音进行采样,所以采样率一般是44100Hz(略大于20KHz x 2),即1秒采用44100次。

采样后的数据用二进制信号来表示,一般有8比特、16比特和32比特等。

音频的裸数据格式是脉冲编码调制数据(PCM:Pulse Code Modulation)
描述pcm需要量化格式、采样率以及声道数
我们以常见的值为例来算下对应的比特率和存储空间大小。
量化格式为16比特(2个字节)、采样率为44100HZ、声道数为2,
则对应的比特率= 2x44100x2 x8/1024= 1378kbps
如果是4分钟的音频,对应的文件大小为
1378x60x4/8/1024 = 40MB

这个还是比较大的,为了减少存储空间和传输的流量,需要进行

;