1.写在ffmpeg编译前

关于ffmpeg的编译过程google一搜,一大堆,ffmpeg编译真的有那么难么?在我编译成功后回头来看,网上的资料过多,反而使自己走了很多的弯路。即便有些楼主亲自测试后编译成功了,由于受机器的环境、ffmpeg版本、以及个人操作的影响,导致在自己编译的时候不成功。

有些帖子发表的时间已经很久了,其中提到的到的软件现在也有了很大的更新,就如我后面提到的MinGW,较新的版本直接安装就可以了,无需手动更新一些文件。我写这篇文章的时间是2011/08/30。

系统环境:

操作系统:Windows 7 家庭普通版 Service Pack 1

Ffmpeg版本:ffmpeg-0.6.3,ffmpeg-0.6

开发环境:VS2008

注:

1) win7下的用户要特别注意了,之前我在参考:http://www.chinavideo.org/viewthread.php?tid=9129&extra=page%3D1&page=1

中的帖子编译ffmpeg-0.6.3时,能够生成lib文件,但在调用这些lib库时却出现了莫名奇妙的问题,而且在我make install时也出现了permission deny的错误。这想问题应该出在,Msys和MinGW时没有使用管理员权限安装。

2) 关于ffmpeg的版本,我在编译ffmpeg-0.6.3时,能够生成lib文件,但在编译ffmpeg-0.6时,却生成的是.dll.a和.def后缀的文件,关于这个问题,文章后面会有解决方法。

1.1 MinGW安装以及ffmpeg0.6编译lib

安装过程和相关软件的下载是参照这篇帖子:http://zhaostudy2.blog.163.com/blog/static/13535020520110179271153/

但仍有几个重要的细节需要补充下:

1) Win7下的用户在安装MinGW时,要选择“以管理员身份运行”,这样会避免在编译ffmpeg-0.6.3时,生成的lib文件不能用的问题。同样的,在运行Msys时,也要选择“以管理员身份运行”。

2) 楼主提供的在csdn上提供的ffmpeg0.6我在照他的配置后并不能生成动态库(lib),在官方网站上下载的ffmpeg0.6还是不能自动生成动态库(lib),有可能是自带MakeFile的问题。在该文章的留言中,也有用户反映了这个问题。

3) Source forge上面的那个链接页面已经更改,“Tools”文件夹已经消失,还好楼主在csdn上有备份,不得不佩服楼主的先见之明。

1.1.1 ffmpeg0.6编译后不能生成lib文件的解决步骤:

以make后的ffmpeg0.6\libavcodec目录下为例,注意到在该目录中有一个avcodec-52.def的文件,对于该文件,在VS中是可以直接将def文件转换成lib文件的!

关于如何转换,直接参考:

http://blog.163.com/zhucongdzkd@126/blog/static/1399971932010814111127686/

里面也提到关于“没有找到mspdb80.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”的解决方案。

我的命令行参数如下图所示:

生成的lib可用!问题解决!

2.最终的编译文档

为防止前面引用的文章无法访问,我再将我的编译过程整理如下:

2.1MinGW下载及安装

1) MinGW下载地址:http://download.csdn.net/source/2988856

2) MinGW安装:win7下选择“以管理员身份运行”运行exe文件,后面步骤使用默认选项安装即可

2.2下载及编译ffmpeg0.6.3动态链接库

Ffmpeg0.6.3是可以直接编译生成动态链接库及.lib文件的。

Ffmpeg0.6.3官方下载地址:http://ffmpeg.org/releases/ffmpeg-0.6.3.tar.bz2

以管理员身份运行”运行MinGW32\MSYS\msys.bat文件

执行以下3条命令,

[plain] view plaincopy
  1. <span style="font-family:'Microsoft YaHei';font-size:13px;">cd /E/ffmpeg0.6.3
  2. ./configure --enable-shared --disable-static --enable-memalign-hack
  3. make</span>

漫长的等待...

执行完以上3条命令后在E:\ffmpeg0.6.3\libavcodec下就可以找到avcodec-52.lib和avcodec-52.dll,其他几个lib开头的文件夹下也有相应的.lib文件和.dll文件,至此,ffmpeg编译动态链接库成功完成。

2.3下载及编译ffmpeg0.6动态链接库

Ffmpeg0.6官方下载地址:http://ffmpeg.org/releases/ffmpeg-0.6.tar.bz2

前面步骤与编译ffmpeg0.6时一致,但只生成了dll文件和def文件,没有生成lib文件。

后面就要使用VS2008中提供的lib.exe工具将def文件转换成lib文件。

1) 在C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下双击lib.exe文件。若弹出“没有找到mspdb80.dll,因此这个应用程序未能启动。重新安装应用程序可能会修复此问题。”

将C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\mspdb80.dll复制到C:\Program Files\Microsoft Visual Studio 9.0\VC\bin下,再次双击lib.exe文件,lib.exe就可以正常启动了。

注意:为避免今后使用VS遇到问题,在成功生成lib文件后,要将mspdb80.dll从C:\Program Files\Microsoft Visual Studio 9.0\VC\bin目录下删除。

2) 假设avcodec-52.def文件位于C:\test目录下,执行如下命令:

lib /out:c:\test\avcodec.lib /machine:IX86 /def:C:\test\avcodec-52.def

即可生成lib文件

至此,所有问题圆满解决

重要补充!!!

与我的解决方法很相似,但更加详细,还提到了无法生成.def文件时,修改config.mak文件的方法。http://blog.csdn.net/xiajia/article/details/6533182

win7下ffmpeg编译动态链接库整理相关推荐

  1. ubuntu下ffmpeg编译安装

    ubuntu下ffmpeg编译安装 解决库链接不上的问题 ubuntu下ffmpeg编译安装   1.ffmpeg是什么东西?相信很多人第一次接触这个东西,我先在这里做个简单的介绍. FFmpeg是一 ...

  2. 在Ubuntu下FFmpeg编译,支持x264和x265(HECV)

    所有下载的源 在Ubuntu下FFmpeg编译,支持x264和x265. Ubuntu 12.04 FFmpeg 2.1 Release 注意: cmake要升级要2.8.8 yasm要升级到1.2. ...

  3. Linux下 FFmpeg 编译安装

    FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序. 官网:http://ffmpeg.org 一.FFmpeg安装 安装依赖包: yum install libth ...

  4. WIN7下vim安装配置整理(插件齐全)

    首先安装spf13-vim,spf13集成Vundle,NeedTree,Ctrl-P等,再安装YouCompleteMe,Cscope,最后配上MacType外观. 要求系统WIN7以上,我用的是W ...

  5. linux下ffmpeg编译成so文件,一、ffmpeg编译成android使用的so库

    1.在https://ffmpeg.org/中下载ffmpeg源码(目前版本为ffmpeg-3.2.1) 2.下载ndk 3.分别解压ffmpeg和ndk, 路径如 : ffmpeg路径: /home ...

  6. win7下编译android版ffmpeg

    参考: http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/ ffmpeg用的是2.3.2版本. 困扰了很久,终于使用参考链接里的脚本成功编译 ...

  7. FFmpeg在Windows系统下的编译过程

    由于FFMpeg是基于Linux开发的开源项目,源代码和Windows下最常见的Visual Studio提供的C/C++编译器不兼容,因此它不能使用MSVC++编译.要想使用FFMpeg,最先要解决 ...

  8. 【Win7下Android native code的编译和调试】

    光为这编译及调试环境就前后折腾了两三天,墙外找了很多教程,bill以为以下教程最为贴切 Using eclipse for android - cc Development Using eclipse ...

  9. win7下搭建手动转码服务器的安装配置tomcat、java、ffmpeg、hy_changsha、FTP

    http://www.2cto.com/os/201203/122261.html 1.下载JDK安装 官网下载地址http://java.sun.com/javase/downloads/index ...

最新文章

  1. excel表格制作计算机一级,计算机一级OFFICE辅导:给Excel表格添加背景音乐
  2. JSP中的九个内置对象
  3. Android Message解析
  4. MySQL中in(常量列表)的执行计划
  5. 机器学习(数据挖掘十个重要算法)
  6. [轉]Flash/Flex监听浏览器的关闭事件
  7. 可变数据类型和不可变数据类型
  8. 如何用Pygame写游戏(九)
  9. [PTA] 数据结构与算法题目集 6-10 二分查找
  10. 神经网络控制系统设计,神经网络技术及其应用
  11. js实现简易五子棋游戏
  12. 【ZMap】unable to initialize blacklist / whitelist
  13. python为什么胶水语言_为什么称python为胶水语言
  14. Ubuntu如何安装TeamViewer Ubuntu安装TeamViewer教程
  15. c语言移位,移位运算符
  16. skyeye与uClinux的安装
  17. 你知道吗?一个比房地产更大的超级泡沫正风靡全国!
  18. 第2篇,到底什么是互联网思维?
  19. OpenStack Cinder特性之Volume-backed image介绍与验证
  20. TypeError: only integer tensors of a single element can be converted to an indexValueError: only one

热门文章

  1. MySQL 表一列逗号分隔字段,按逗号切割
  2. docker mysql输入中文_Docker解决终端无法输入中文的问题
  3. java面向_java是面向什么的语言?
  4. mybatis一级,二级缓存。缓存带来的脏读问题
  5. 1020 月饼 (25分)
  6. (JAVA)Calender类
  7. swagger 修改dto注解_Swagger介绍及使用
  8. 日常spoken英语学习
  9. 习题2-3 求平方与倒数序列的部分和
  10. vue基础18(vue-cli脚手架项目中组件的使用)