FFmpeg——Windows下,视频播放器1:音视频处理基础

1. 视频播放器原理

视频播放器播放一个本地视频文件,需要经过以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。

这里写图片描述

2. 封装格式

视频码流和音频码流按照一定的格式存储在一个文件中,常见的视频封装格式有AVI,MP4,FLV,RMVB……..

这里写图片描述

3. 视频编码数据

将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量
常见视频编码格式:

这里写图片描述

4. 音频编码数据

将音频采样数据(PCM等)压缩成为音频码流,从而降低音频的数据量
常见音频编码格式:
这里写图片描述

5. 视频像素数据

保存了屏幕上每个像素点的像素值。
常见的像素数据格式有RGB24, RGB32, YUV420P,YUV422P, YUV444P等。压缩编码中一般使用的是YUV格式的像素数据,最为常 见的格式为YUV420P。

6. 音频采样数据

保存了音频中每个采样点的值。
音频采样数据体积很大,一般情况下一首4分钟的PCM格式的
歌曲体积为:
4*60*44100*2*2=42.3MByte
PS:这里假定采样率为44100Hz,采样精度为16bit。

解封装的作用,就是将输入的封装格式的数据,分离成为音频流压缩编码数据和视频流压缩编码数据。封装格式种类很多,例如MP4,MKV,RMVB,TS,FLV,AVI等等,它的作用就是将已经压缩编码的视频数据和音频数据按照一定的格式放到一起。例如,FLV格式的数据,经过解封装操作后,输出H.264编码的视频码流和AAC编码的音频码流。

解码的作用,就是将视频/音频压缩编码数据,解码成为非压缩的视频/音频原始数据。音频的压缩编码标准包含AAC,MP3,AC-3等等,视频的压缩编码标准则包含H.264,MPEG2,VC-1等等。解码是整个系统中最重要也是最复杂的一个环节。通过解码,压缩编码的视频数据输出成为非压缩的颜色数据,例如YUV420P,RGB等等;压缩编码的音频数据输出成为非压缩的音频抽样数据,例如PCM数据。

视音频同步的作用,就是根据解封装模块处理过程中获取到的参数信息,同步解码出来的视频和音频数据,并将视频音频数据送至系统的显卡和声卡播放出来。

展开阅读全文

没有更多推荐了,返回首页