本文是听了雷宵骅大神的课之后的总结,部分内容借用了其PPT的内容,如有侵权请告知删除。
雷宵骅大神的博客为:https://blog.csdn.net/leixiaohua1020
视频播放器的原理
先说我们平常见到的例如MP4RVMB视频文件是怎么来的,一开始是原始视频,实际上视频就是一张一张的图片拼接而成。假如一秒钟给你播放30张图片,你会觉得这视频很流畅,想象一下小时候那种通过翻页会动的小人书。假如现在由1秒中的视频需要30张的图片,那1个小时就得60*60*30张图片,这样的话体积太大了,所以要进行压缩得到视频压缩文件。此时只有视频,没有声音,就需要把视频和声音拼在一起,这就生成了最终的视频了。而视频播放器就是反其道而行。播放器的流程如下图所示:
所以个人将其分为了三层:封装格式层、压缩数据层、原始数据层
常用的音视频分析工具
常用的音视频分析工具如下图所示,但本文不会提及如何使用,可能在后续文章会有所涉猎
封装格式的作用以及举例(封装格式层)
以下举两个比较常用的封装格式例子,MPEG2-TS格式主要是用于数字电视传输,特点是中途断了也能够续播。而FLV假如文件头丢了啥的就播放不了了
视频编码数据(压缩数据层)
视频编码中运用最广泛的为H264,下面是对其的简单介绍
音频编码数据(压缩数据层)
音频编码中运用最广泛的为AAC,下面是对其的简单介绍
视频像素数据(原始数据层)
视频像素数据最常见的是RGB和YUV两种格式,下面对两种格式分别进行介绍
(1)RGB格式
(2)YUV格式
音频采样数据(原始数据层)
音频原始数据采用的是PCM格式,以下是对其的简单介绍