没有合适的资源?快使用搜索试试~ 我知道了~
ffmpeg+SDL中文教程
4星 · 超过85%的资源 需积分: 9 84 下载量 120 浏览量
2013-09-14
12:12:34
上传
评论 5
收藏 442KB PDF 举报
温馨提示
试读
153页
著名的ffmpeg tutorial的中文版,详细的讲解了使用ffmpeg+SDL创建一个几乎支持所有格式的视频播放器的过程。
资源推荐
资源详情
资源评论
ffmpeg使用教程(转)
收藏人:dotphoenix
2013-09-13|阅:1转:2|分享
|来源
概要
电影文件有很多基本的组成部分。首先,文件本身被称为容器
Container,容器的类型决定了信息被存放在文件中的位置。AVI和
Quicktime就是容器的例子。接着,你有一组流,例如,你经常有的是一
个音频流和一个视频流。(一个流只是一种想像出来的词语,用来表示一
连串的通过时间来串连的数据元素)。在流中的数据元素被称为帧
Frame。每个流是由不同的编码器来编码生成的。编解码器描述了实际的
数据是如何被编码Coded和解码DECoded的,因此它的名字叫做
CODEC。Divx和MP3就是编解码器的例子。接着从流中被读出来的叫
做包Packets。包是一段数据,它包含了一段可以被解码成方便我们最后
在应用程序中操作的原始帧的数据。根据我们的目的,每个包包含了完整
的帧或者对于音频来说是许多格式的完整帧。
基本上来说,处理视频和音频流是很容易的:
10从video.avi文件中打开视频流videostream
20从视频流中读取包到帧中
30如果这个帧还不完整,跳到20
40对这个帧进行一些操作
50跳回到20
在这个程序中使用ffmpeg来处理多种媒体是相当容易的,虽然很多程序
可能在对帧进行操作的时候非常的复杂。因此在这篇指导中,我们将打开
一个文件,读取里面的视频流,而且我们对帧的操作将是把这个帧写到一
个PPM文件中。
打开文件
首先,来看一下我们如何打开一个文件。通过ffmpeg,你必需先初始化
这个库。(注意在某些系统中必需用<ffmpeg/avcodec.h>和<ffmpeg/
avformat.h>来替换)
#include<avcodec.h>
#include<avformat.h>
...
intmain(intargc,charg*argv[]){
avregisterall();
这里注册了所有的文件格式和编解码器的库,所以它们将被自动的使用在
被打开的合适格式的文件上。注意你只需要调用avregisterall()一次,
因此我们在主函数main()中来调用它。如果你喜欢,也可以只注册特定的
格式和编解码器,但是通常你没有必要这样做。
现在我们可以真正的打开文件:
AVFormatContext*pFormatCtx;
//Openvideofile
if(avopeninputfile(&pFormatCtx,argv[1],NULL,0,NULL)!=0)
return-1;//Couldn'topenfile
我们通过第一个参数来获得文件名。这个函数读取文件的头部并且把信息
保存到我们给的AVFormatContext结构体中。最后三个参数用来指定特
殊的文件格式,缓冲大小和格式参数,但如果把它们设置为空NULL或者
0,libavformat将自动检测这些参数。
这个函数只是检测了文件的头部,所以接着我们需要检查在文件中的流的
信息:
//Retrievestreaminformation
if(avfindstreaminfo(pFormatCtx)<0)
return-1;//Couldn'tfindstreaminformation
这个函数为pFormatCtx->streams填充上正确的信息。我们引进一个手
工调试的函数来看一下里面有什么:
//Dumpinformationaboutfileontostandarderror
dumpformat(pFormatCtx,0,argv[1],0);
现在pFormatCtx->streams仅仅是一组大小为pFormatCtx-
>nbstreams的指针,所以让我们先跳过它直到我们找到一个视频流。
inti;
AVCodecContext*pCodecCtx;
//Findthefirstvideostream
videoStream=-1;
for(i=0;i<pFormatCtx->nbstreams;i++)
剩余152页未读,继续阅读
dotphoenix
- 粉丝: 197
- 资源: 72
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页