音视频学习之路D1(音视频录制原理)

谨以此系列帖,记录我个人音视频学习成长历程,若能帮到诸君,荣幸万分;

音视频录制原理框架:

        

摄像头:

摄像头采集回来的数据可以用  rgb/yuv  去表示,rgb好理解,就是三原色,红绿蓝,yuv后面会说。

图像帧:

采集回来的图像帧,比如一秒采25张那么就是25帧。

图像处理:

这个模块是用来做什么的呢?比如我们的图像画面暗,我们就可以调亮一点,这个时候就可以在这个模块去进行操作。

图像帧队列:

也就是说我们采集回来的数据会先放到一个图像帧队列里面去,等着编码线程去取这些数据做编码。

扫描二维码关注公众号,回复: 15370362 查看本文章

视频编码:

为什么要做视频编码呢?因为如果你不做视频编码,那么这个视频的体积是非常非常大的。打个比方你下载一张1k的图片,可能有3mb,但是一个视频文件中有好多好多张图片,那么这个视频如果不做压缩所消耗的空间是非常大的,所以这个模块是必须的。我们将压缩后的数据按照一定的格式写入到一个文件里去。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

麦克风:

麦克风采集回来的数据用PCM表示

采样帧:

所谓采样帧就是用N个采样点去压缩成一帧的音频数据;(如果不理解的话可以代入视频文件,比如录制普通的1k视频中是用1920*1080这些个像素点去融合成的一帧图片数据);

至于采多少数据去做一个编码的压缩,比如常见44.1k(一秒钟采44.1k个采样点)。到底是多少个采样点去作为一帧的数据去做压缩呢?一秒的数据可以去压缩一帧,但是这样延迟比较大,所以可以再划分的小一点,比如20多毫秒就可以做一帧的数据,这样子压缩;

后面会讲到pcm的时候会说到底多少个采样点做一帧数据比较合理;暂时理解就行

音频处理:

有时候会对声音做一些操作,比如变音等等。

采样帧队列:

它类似于图像帧队列,也是先将数据放入队列中,等待编码线程去从队列中读取数据后做压缩。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

复用器:

我们的音视频数据写入文件中的时候,都是按照一定的规则去写的,这样当我们播放的时候就会按照反向的规则去进行解析,这样就能提取出音视频数据后播放了。
所谓的规则比如MP4,avi这种媒体文件的格式就是规则;

时钟:

我们在播放的时候,要做到音视频同步的,如果没有时钟信息的记录的话,那我们有时候在做一些操作后(比如拖动播放),那么就会出现画面和音频不同步,很可能视频在播放第一秒的数据,而音频在播放第十秒的数据;所以我们在录制的时候一定要加上这个时钟。(在录制的时候音视频两个采用的时钟是同一个资源),每采到一帧的数据都会打上对应的时间戳

猜你喜欢

转载自blog.csdn.net/qq_25704799/article/details/130716075