视音频编码技术学习笔记

学习雷神的零基础入门视音频编码系列文章,记录下的学习笔记,方便以后复习。绝大部分为雷神博客里的内容。
参考博客:https://blog.csdn.net/leixiaohua1020/article/details/18893769

基础知识

1.视频播放器原理
视音频技术主要包括:封装技术,视频压缩编码技术和音频压缩编码技术。若考虑网络传播的话还包括流媒体协议技术。
播放一个互联网上的视频文件,需要如下步骤:
(1)解协议
(2)解封装
(3)解码视音频
(4)视音频同步
如果播放本地文件的话,不需要解协议这一步。
从下图中可以看出,播放互联网上的视频文件首先需要解协议,将流媒体格式得到数据解析为标准的相应封装格式数据;然后进行解封装,将数据分离为视频压缩数据和音频压缩数据;视频压缩数据通过视频解码得到视频原始数据,音频压缩数据通过音频解码得到音频原始数据;最后进行视音频同步,并将视音频数据送入显卡和声卡播放就可以了。
视音频编码技术学习笔记_第1张图片
解协议:视音频在网络中进行传播时常采用流媒体协议,这些协议在传输视音频数据时,也会传一些信令数据(用来控制视频的播放,暂停,停止),解协议的过程会去除这些信令数据。如:采用RTMP协议传输的数据经过解协议后,会得到FLV格式的数据。

解封装:封装格式有很多种,如:MP4,FLV,RMVB,AVI等,封装的作用就是将已经压缩的视频数据和音频数据按照一定的格式封装起来。解封装与此相反。FLV封装格式的数据通过解封装后,得到H.264编码的视频码流和AAC编码的音频码流。

解码:视频的压缩编码标准有H.264,MPEG2,VC-1等等;音频的压缩编码标准有AAC,MP3,AC-1等。视音频压缩数据通过解码操作变为视音频原始数据。压缩编码的视频数据变为非压缩的颜色数据,如:YUV420P,RGB等。压缩编码的音频数据称为非压缩的音频抽样数据,如:PCM数据。

视音频同步:同步解码出来的视频数据和音频数据,并通过声卡和显卡播放出来。

2.流媒体协议
流媒体协议是服务器与客户端之间通信遵循的规则。
互联网视频传输服务通常采用TCP作为流媒体的传输层协议,因此,RTMP,MMS,HTTP这类协议广泛应用于互联网视音频服务中。这类协议不会发生丢包,因而保证了视频的质量,但传输效率会相对降低。

3.封装格式
封装格式的作用是将视频码流和音频码流按照一定的格式存储在一个文件中。
封装格式有:AVI,RMVB,MP4,TS,FLV,MKV等
除AVI外其他格式均支持流媒体协议,即可以”边下载边播放”

4.视频编码
视频编码的主要作用是将视频像素数据(YUV,RGB)压缩成视频码流,从而降低视频的数据量。高效率的视频编码在同等的码率下,可以获得更高的视频质量。

5.音频编码
音频编码的主要作用是将音频采样数据(PCM)压缩成音频码流,从而降低音频的数据量。高质量的音频编码在同等的码率下,可以获得更高的音频质量。

6.现有网络视音频平台的对比
现有的网络视音频服务主要有两种:点播和直播。
点播服务普遍采用HTTP流媒体协议,H.264作为视频编码格式,AAC作为音频编码格式。才用HTTP作为点播的协议有以下两方面的优点:
(1)HTTP是基于TCP协议的应用层协议,在数据传输的过程中不易发生丢包现象,从而保证了视频的质量
(2)HTTP协议被绝大多数web服务器支持,因此流媒体服务机构不比额外购买流媒体服务器,节省了开支。
点播服务采用的封装格式是:MP4,FLV,F4V等,采用H.264作为视频编码标准,AAC作为音频编码标准。视频播放器都采用Flash播放器。

直播服务普遍采用RTMP作为流媒体协议,FLV作为封装格式,H.264作为视频编码标准,AAC作为音频编码标准,视频播放器采用Flash播放器。

你可能感兴趣的:(FFmpeg)