深入分析FFmpeg之一-打开媒体文件并读取文件头信息
2015-03-11 10:30
357 查看
分析了一段时间的ffmpeg源代码,是时候写个笔记做个总结了。所以决定写一系列关于分析FFmpeg架构及API使用的笔记,现在计划涵盖的内容包括从打开一个媒体文件(access)到demux,然后到decode,最后render出来这整个过程,循序渐进,当然也包括转码过程, 其中每个过程我都会尽量仔细分析并对源代码注释,并给出相应的实例代码。希望能够让刚接触ffmpeg的朋友获得一些帮助,因为ffmpeg方面的资料确实很少,自己学习的时候也走了不少弯路。
FFmpeg版本2.1, 我的操作环境是Ubuntu12.04 X64, GCC4.6.1.
ffmpeg是一套功能非常不可思议的开源的多媒体框架,而且开发速度很快,如果感兴趣可以加入到ffmpeg开发的邮件列表,甚至为ffmpeg做出自己的贡献。首先可以去ffmpeg的官网下载最新版的ffmpeg,我这里的版本是2.1,因为ffmpeg是开源的,依赖于gcc,所以最好在linux下编译和开发,如果实在想用windows,那么也可以在windows上安装cygwin(一个仿linux的环境),不过笔者还是建议在linux下编译和开发。编译和安装都很简单,这里还是废话一下,执行.configure来产生Makefile,然后执行make;makeinstall安装ffmpeg库到系统,之后就可以进行ffmpeg的开发了,当然知识想调用ffmpeg的SDK的话可以不用下载源码,仅仅下载SDK(包括ffmpeg的几个库和相应的include文件).
下面一段代码非常简单,仅仅几行就可以读出媒体文件的信息,这段程序主要是用了ffmpeg中的libavformat库下面先贴出程序的执行效果
#include <libavformat/avformat.h>
//#include <libswscale/swscale.h>
static ShowUseage(const char* p)
{
printf("you must specify an input file as: %s youfile.avi!!!\n", p);
}
int main(int argc, char* argv[])
{
AVFormatContext *pFormatContext = NULL;
if(argc<2)
{
ShowUseage(argv[0]);
return -1;
}
char *filepath = argv[1];
av_register_all();
//pFormatContext = avformat_alloc_context();
if(avformat_open_input(&pFormatContext,filepath,NULL,NULL)!=0) //Open the media file and read the header
{
printf("Can not open the media file you specified!\n");
return -1;
}
printf("****************file information*****************\n");
av_dump_format(pFormatContext,0,filepath,0); //dump input information to the stdio
printf("*************************************************\n");
avformat_close_input(&pFormatContext);
return 0;
}
http://blog.chinaunix.net/uid-26611383-id-3971425.html
相关文章推荐
- 深入分析FFmpeg之一-打开媒体文件并读取文件头信息
- 深入分析FFmpeg之一-打开媒体文件并读取文件头信息
- VC打开bmp文件,读取信息
- JMF实现将从摄像头和麦克读取的媒体信息保存成视频文件
- C# 打开文件目录并读取整个目录信息
- ffmpeg 源码分析之媒体打开过程
- ffmpeg源码分析之媒体打开过程
- ffmpeg源码分析之媒体打开过程
- 3:(C#下使用GDAL库)打开影像文件并读取基本信息
- FFMPEG源码分析:avformat_open_input()(媒体打开函数)
- ffmpeg源码分析之媒体打开过程
- ffmpeg源码分析之媒体打开过程
- ffmpeg源码分析之媒体打开过程
- 读取wav文件头,获取文件详细信息
- 2.GDAL打开影像文件并读取基本信息
- 【学习ffmpeg】打开视频文件,帧分析,并bmp保存关键帧
- 声音文件读取(未实现)--MP3 文件的ID3V1信息与ID3V2信息结构的分析
- 不打开文件,读取Rvt文件中的信息
- FFMPEG源码分析:avformat_open_input()(媒体打开函数)
- 打开文件读取信息,统计单词长度大于指定值的个数