4.ffmpeg音视频文件处理基本流程

ffmpeg对一个媒体文件进行解码的主要流程是:
解码流程图

1.解复用(Demux)
视频文件的音频和视频都是分开进行压缩的,因为音频和视频的压缩算法不一样,
所以解码也不一样,所以需要对音频和视频分别进行解码。虽然音频和视频是分别
进行压缩的,但是为了传输过程的方便,降压所过的音频和视频捆绑在一起进行传输。
所以解复用这一步就是将文件中捆绑的音频流和视频流分开来以方便后面分别对它们进行解码。
解复用

2.解码(Decode)
一个音视频文件肯定是经过某种格式压缩的(h264、h265等),也就是通常所说的音视频编码,
编码是为了减少数据量,否则的话对于音视频数据的存储和网络传输将是很难完成的,
所以我们必须对音视频文件进行尽可能的压缩。

3.ffmpeg 中解码流程对应的 API 函数
前面就是ffmpeg对一个音视频从打开到解码的过程,每一步都会对应到ffmpeg中的一个或一组API,
如下图所示:
fmpeg中解码流程对应的API函数

ffmpeg 中 Demux 这一步是通过 avformat_open_input()这个 api 来做的,这个 api 读出文件的
头部信息,并做 demux,在此之后我们就可以读取媒体文件中的音频和视频流,
然后通过 av_read_frame()从音频和视频流中读取出基本数据流 packet,
然后将 packet 送到 avcodec_decode_video2()和相对应的 api 进行解码。

猜你喜欢

转载自blog.csdn.net/yanghangwww/article/details/104529191