FFmpeg解码流程与基本概念.pdfVIP

  • 0
  • 0
  • 约1.68万字
  • 约 14页
  • 2026-01-26 发布于四川
  • 举报

先给出几个概念,以便在后面的分析中方便理解Container:在音中的容器,通常

指的是一种特定的文件格式,里面指明了所包含的音、字幕等相关信息Stream:

这个词有些微妙,很多地方都用到,比如TCP、SVR4系统等,实际上在音中,你可

以理解为单纯的音频数据或数据等Frames:这个概念不是很好明确地表示,指的

是Stream中的一个数据单元,要真正对这个概念有所理解,可能需要看一些音编码

的理论知识Packet:是Stream的raw数据Codec:Coded+Decoded其实这些概念

在FFmpeg中都有很好的体现,我们在后续分析中会慢慢看到

2.的基本流程

我很懒,于是还是选择了从AnffmpegandSDLTutorial中的流程概述:

10打开_stream从.avi20从

_streampacket到frame30如

果frame转到2040对frame进行处

理50转到20

这就是的全过程,一眼看去,是不是感觉不过如此:)不过,事情有深有浅,从浅到深,

然后从深回到浅可能才是一个有意思的过程,我们的故事,就从这里开始,展开来讲。

3.示例代码

在AnffmpegandSDLTutorial1中,给出了一个阳春版的器,我们来仔细

看看阳春后面的故事,为了方便讲述,我先贴出代码:#include

ffmpeg/avcodec.h#includeffmpeg/avformat.h

#includestdio.h

voidSaveFrame(AVFrame*pFrame,intwidth,intheight,intiFrame){

FILE*pFile;char

szFilename[32];

inty;

//打开文件sprintf(szFilename,fra

me%d.ppm,iFrame);pFile=

fopen(szFilename,wb);if(pFile==

NULL)return;

先给出几个概念,以在后面的分析中方便理解

Container:在音中的容器,一般指的是一种特定的文件格式,里面指明了所包含的

音,字幕等相关信息

Stream:这个词有些微妙,很多地方都用到,比如TCP,SVR4系统等,其实在音,你

可以理解为单纯的音频数据或者数据等

Frames:这个概念不是很好明确的表示,指的是Stream中的一个数据单元,要真正对这

个概念有所理解,可能需要看一些音编码的理论知识

Packet:是Stream的raw数据

Codec:Coded+Decoded

其实这些概念在在FFmpeg中都有很好的体现,我们在后续分析中会慢慢看到

2.的基本流程

我很懒,于是还是选择了从AnffmpegandSDLTutorial中的流程概述:

10OPEN_streamFROM.avi

20READpacketFROM_streamINTOframe

30IFframeNOTCOMPLETEGOTO20

40DOSOMETHINGWITHfr

文档评论(0)

1亿VIP精品文档

相关文档