FFmpeg播放视频文件流程

Posted 老樊Lu码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FFmpeg播放视频文件流程相关的知识,希望对你有一定的参考价值。

一、FFmpeg解码播放主要流程,如图1-1所示:

使用播放一个媒体文件时,通常需要经过以下几个步骤:

                                                           图1-1    FFmpeg 播放视频文件流程

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

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

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

2.FFMPEG音视频解码

        通过上面对媒体文件播放步骤的了解,我们在解码多媒体文件的时候需要经过两个步骤,即解封装(Demuxing)和解码(Decode)。下面就来看一下FFMPEG解码媒体文件的时候是怎样做这两个步骤的。

以上是关于FFmpeg播放视频文件流程的主要内容,如果未能解决你的问题,请参考以下文章

AndroidJNI实战——记录实现视频播放器

AndroidJNI实战——记录实现视频播放器

基于FFmpeg的视频播放器之二:解复用

FFmpeg + SDL 视频播放器

FFmpeg解封装解码音频和视频(分别使用OpenGL和OpenAL播放)

Qt-FFmpeg开发-视频播放