在windows下使用MinGW编译ffmpeg0.6
来源:互联网 发布:mac的see sheer 编辑:程序博客网 时间:2024/05/17 09:24
(1)编译ffmpeg0.6
由于FFmpeg是在Linux下开发的,它用gcc来编译,要在windows下编译的话,就需要在windows下建立linux的环境,因此我们要使用mingw。
mingw是ffdshow项目创建,到今天为止最新的安装包是mingw32_gcc441_20100504.exe。可以从http://sourceforge.net/projects/ffdshow-tryout/files/ 这里的Tools中下载。如下图所示:
对于不方便从sourceforge上下载的朋友,可以从http://download.csdn.net/source/2988856这里下载。
下载安装mingw后,运行在安装目录下的\MSYS目录下的msys.bat。,我的是D:\MinGW32\MSYS\msys.bat。
ffmpeg0.6的官方下载地址为:ffmpeg-0.6.tar.bz2,解压出来。也可以从http://download.csdn.net/source/2988907 这里下载。
然后在mingw的控制台中进入ffmpeg源码目录,并执行命令:./configure --enable-memalign-hack 生成编译时所需的Makefile文件。然后执行 make 命令,就可以生成相应的exe文件,如ffmpeg.exe、 ffplay_g.exe、 ffmpeg_g.exe 等。
如果要生成动态库(dll)或静态库(lib),则可以使用命令:./configure --enable-shared --disable-static --enable-memalign-hack 。这样就可以得到avcodec.dll、avdevice.dll、avformat.dll、avutil.dll、swscale.dll,以及对应的lib。
如下图所示:
编译好后,可以运行一下ffmpeg,看看能不能正常运行。命令如:ffmpeg -i campus_path.avi -vcodec flv -f flv a.flv,将ffmpeg目录下的文件campus_path.avi(我自己放进去的文件)转换为a.flv文件。
如果是用 ./configure --enable-memalign-hack 命令来只编译得到exe文件,则上面命令可以正常运行。
如果是用 ./configure --enable-shared --disable-static --enable-memalign-hack 命令同时得到exe、dll、lib文件,则执行上面命令会提示错误,如下图所示:
这是因为编译了动态库和静态库后,ffmpeg.exe的运行就需要依赖这些库了,可以在ffmpeg目录下搜索.dll文件,然后把这些dll文件都复制到ffmpeg.exe相同的目录下。然后程序就可以正常运行了。
用MinGw+MSYS编译ffmpeg生成DLL,缺少LIB文件
问题:msys + mingw下编译ffmpeg,生成不了lib,只有dll
解决:必须装入VC的库文件
步骤:
1.Start->Programs->Microsoft Visual C++ Express Edition->Visual Studio Tools->Visual Studio 2008 Command Prompt
cd c:\msys
msys.bat
简单的说就是进入vc的命令行工具,然后运行msys下的msys.bat文件
2.执行lib命令,输出如下:
3.之后的步骤和网上的一样了:
./configure --enable-memalign-hack --disable-static --enable-shared --disable-yasm --enable-debug
make distclean
./configure --enable-shared --disable-static --enable-memalign-hack
make
make install
参考资料:http://ffmpeg.arrozcru.org/wiki/index.php?title=Shared_LIB
http://xass.blog.163.com/blog/static/56168399201107102855746/
后记:同样的方式在64位操作系统下生成的导入库后缀为dll.a,而在32位winxp下则生成的是lib。
- 在windows下使用MinGW编译ffmpeg0.6
- ffmpeg0.6 在windows下编译【转载,有改动】
- 在Windows环境下使用MinGW编译Qt 4.8.6
- cscope在windows下使用mingw编译的方法
- 手把手教你在Windows下使用MinGW编译libav
- 手把手教你在Windows下使用MinGW编译libav
- 在Windows下使用MinGW静态编译Assimp
- 手把手教你在Windows下使用MinGW编译libav
- Windows下使用MinGW在命令行编译运行C++程序
- 在windows下用mingw编译emacs
- mingw:在LINUX下编译WINDOWS程序
- 在Windows下利用MinGW编译FFmpeg
- windows下使用MinGW编译QPSQL插件
- windows 下使用MinGW编译PBC库
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- windows下使用MinGW+msys编译ffmpeg
- 第五章 处理器拦截器详解
- [Linux]学习ubuntu过程中的简单笔记
- 小议C++中const的实现机制
- Google的Objective-C编码规范
- IO多路复用学习笔记
- 在windows下使用MinGW编译ffmpeg0.6
- 实现C语言 itoa函数
- Android ListView getView疯狂调用的解决办法
- FusionCharts Free中文开发指南 第四章--使用JavaScript加载图形
- [Oracle]学习Oracle数据库的简单笔记(未完待续)
- bool?与bool转化
- sql多表分组查询
- c/c++笔试题目(林锐)
- Android 安全机制