用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)

在安装好的opencv目录下找到路径:opencv245\opencv\3rdparty\ffmpeg,此路径下有一个readme.txt文件,内容如下所示:

The build script is to be fixed.

Right now it assumes that 32-bit MinGW is in the system path and

64-bit mingw is installed to c:\Apps\MinGW64.

It is important that gcc is used, not g++!

Otherwise the produced DLL will likely be dependent on libgcc_s_dw2-1.dll or similar DLL.

While we want to make the DLLs with minimum dependencies: Win32 libraries + msvcrt.dll.

ffopencv.c is really a C++ source, hence -x c++ is used.

How to update opencv_ffmpeg.dll and opencv_ffmpeg_64.dll when a new version of FFMPEG is release?

1. Install 32-bit MinGW + MSYS from

http://sourceforge.net/projects/mingw/files/Automated%20MinGW%20Installer/mingw-get-inst/

Let‘s assume, it‘s installed in C:\MSYS32.

2. Install 64-bit MinGW. http://mingw-w64.sourceforge.net/

Let‘s assume, it‘s installed in C:\MSYS64

3. Copy C:\MSYS32\msys to C:\MSYS64\msys. Edit C:\MSYS64\msys\etc\fstab, change C:\MSYS32 to C:\MSYS64.

4. Now you have working MSYS32 and MSYS64 environments.

Launch, one by one, C:\MSYS32\msys\msys.bat and C:\MSYS64\msys\msys.bat to create your home directories.

4. Download ffmpeg-x.y.z.tar.gz (where x.y.z denotes the actual ffmpeg version).

Copy it to C:\MSYS{32|64}\msys\home\<loginname> directory.

5. To build 32-bit ffmpeg libraries, run C:\MSYS32\msys\msys.bat and type the following commands:

5.1. tar -xzf ffmpeg-x.y.z.tar.gz

5.2. mkdir build

5.3. cd build

5.4. ../ffmpeg-x.y.z/configure --enable-w32threads

5.5. make

5.6. make install

5.7. cd /local/lib

5.8. strip -g *.a

6. Then repeat the same for 64-bit case. The output libs: libavcodec.a etc. need to be renamed to libavcodec64.a etc.

7. Then, copy all those libs to <opencv>\3rdparty\lib\, copy the headers to <opencv>\3rdparty\include\ffmpeg_.

8. Then, go to <opencv>\3rdparty\ffmpeg, edit make.bat

(change paths to the actual paths to your msys32 and msys64 distributions) and then run make.bat

在使用minGW32编译ffmpeg过程中,遇到了以下几个问题:

1、 在输入命令5.4后,出现了提示”yasm is old ...",提示输入“--disable-yasm”

其实是重新输入../ffmpeg-x.y.z/configure --enable-w32threads --disable-yasm。

2、 5.5和5.6的执行过程较长,请耐心等待。

3、 5.7 strip -g *.a 的意思是跳过debug编译,编译生成release版本。

4、 第7步中的编译好的lib和头文件,其实是存放在 local 目录下(存放release版本)。开始没注意到,我一个个搜索,复制粘贴过去的,这些是我从"C:\MSYS32\msys\1.0\home\Administrator\bulid" 目录下搜索的,而这边生成的.a库版本是debug版本的。

5、 第8步中修改msys32的路径即可,就可以运行make.dat文件。

或者是在命令行中,转到”opencv\3rdparty\ffmpeg"这个目录下,从gcc处开始” gcc -Wall -shared -o opencv_ffmpeg.dll -O2 -x c++ -I../include -I../include/ffmpeg_ -I../../modules/highgui/src ffopencv.c -L../lib -lavformat -lavcodec -lavdevice -lswscale -lavutil -lwsock32“   输入以上语句,运行后会出现

” libiconv“的相关错误提示;

解决方法:在C:\MSYS32 目录下找到libiconv.a文件复制到 " opencv\3rdparty\ffmpeg\lib" 目录下。

在运行命令时,在后加 -liconv 运行即可生成文件 opencv_ffmpeg.dll。

6、 ffmpeg-x.y.z.tar.gz的下载地址为:http://www.ffmpeg.org/download.html,在该页面中选择最新版本的Download
gzip tarball
 这一项下载。

7、在命令行中书写路径中,不能用"\", 而用"/"。

如需转载,请注明文章出处:http://blog.csdn.net/wsbeibei

用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)

时间: 2024-11-13 16:41:54

用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)的相关文章

[转]在VS2010 VC++项目中引用Lib静态库(以Openssl为例)

本文转自:http://kb.cnblogs.com/page/94467/ Openssl是个为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用. 首先下载Openssl包:(http://www.openssl.org/),这是一个C语言类库包,在Windows下可以通过Perl对该类库包进行MakeBuild,产生libeay32.ssleay32的Lib以及Dll文件,具体操作详见:h

OpenCV中的SVM参数优化

OpenCV中的SVM参数优化 标签: svm参数优化opencv SVMSVR参数优化CvSVMopencv CvSVM 2014-08-19 10:31 2995人阅读 评论(8) 收藏 举报  分类: 机器学习(11)  opencv(18)  版权声明:本文为博主原创文章,未经博主允许不得转载. SVM(支持向量机)是机器学习算法里用得最多的一种算法.SVM最常用的是用于分类,不过SVM也可以用于回归,我的实验中就是用SVM来实现SVR(支持向量回归). 对于功能这么强的算法,OpenC

OpenCV中的SVM參数优化

SVM(支持向量机)是机器学习算法里用得最多的一种算法.SVM最经常使用的是用于分类,只是SVM也能够用于回归,我的实验中就是用SVM来实现SVR(支持向量回归). 对于功能这么强的算法,opencv中自然也是有集成好了,我们能够直接调用.OpenCV中的SVM算法是基于LibSVM软件包开发的,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单.易于使用和高速有效的SVM模式识别与回归的软件包. 网上讲opencv中SVM使用的文章有非常多,但讲SVM參数优化的文章却

利用openssl管理证书及SSL编程第3部分:将MinGW编译的openssl dll导出def和lib供MSVC使用

将MinGW编译的openssl dll导出def和lib供MSVC使用 前面我们用mingw把openssl 编译成了动态库,得到下面2个dll文件: libeay32.dll ssleay32.dll 然后用下面的脚本生成Windows MSVC需要的模块定义文件(.def, .lib和.exp), 然后就可以在VC中使用了. 前提系统要安装VS. 系统要求: Windows7+VS Studio (2008 and later)+MSYS 1) 根据32位dll生成模块定义文件的pytho

mingw编译ffmpeg+x265过程记录

mingw编译ffmpeg+x265过程记录 email: [email protected] 工作环境 OS:windows 7 1.相关资源下载 Ffmpeg-2.3     http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2 X265-1.3下载  https://bitbucket.org/multicoreware/x265/wiki/Home http://ffmpeg.zeranoe.com/builds/source/external_

QT中使用MinGW 编译的protobuf库--包含库的生成和使用

QT中使用MinGW 编译的protobuf库--包含库的生成和使用 0前言 1准备工作 2生成protobuf库文件 3在QT中测试protobuf的使用 4结语 0前言 最近要在QT中使用protobuf,于是需要编译protobuf静态库文件,导入qt使用,没想到过程非常曲折,各种报错各种坑,在网上参考了很多文章,最后终于成功了,现在将QT中使用protobuf的整个配置过程都写出来提供给大家,希望能够帮助到大家. 1准备工作 1.1 下载QT并安装 下载QT5.6.0,到D盘的QT文件夹

手把手教你在Windows下使用MinGW编译libav(参考libx264的编入)

转自:http://www.th7.cn/Program/cp/201407/242762.shtml 手把手教你在Windows下使用MinGW编译libav libav是在Linux下使用纯c语言开发的,不可避免的,libav源码使用了一些gcc的特性,那么在Windows下很难使用VC编译,但是使用MinGW编译却简单多了,下面我将根据自己的经历逐步介绍使用MinGW编译libav的过程以及在此过程中遇到的问题及其解决方法. 1      安装MinGW编译环境 1.1    安装MinG

MingW编译virt-viewer

在http://www.spice-space.org/download.html可以下载到windows版本的virt viewer virt-viewer-x86-0.5.7.msi和virt-viewer-x64-0.5.7.msi是使用MingW编译出来的,源码就是使用virt-viewer-0.5.7.tar.gz 如果需要定制virt viewer,就需要从源码编译出可执行的二进制码,本文就是描述编译windows版virt viewer的过程. MinGW 在使用MinGw编译vi

Windows下MinGW编译Qt4

还真不是吹,这个问题折磨我一天……前些天转载了一篇关于<Eclipse+Qt开发环境设置>和<Eclipse+MinGW+Qt开发环境设置>两片文章,里面讲述了QT的开源版本qt-win-opensource-4.x.x-mingw.exe 在Windows下的安装步骤,但我的是qt-win-commercial-src-4.x.x.zip,一顿百度.谷歌……结果还都是关于Qt开源版本的介绍,如何在MinGW开发环境编译成了今天的话题. 安装MinGW或者DEV-CPP,设置环境变