快站免费网站建设哪家好,做家政有专门的网站吗,p2p网站建设公司哪家好,营销网站建设哪里便宜1.写在ffmpeg编译前
关于ffmpeg的编译过程google一搜#xff0c;一大堆#xff0c;ffmpeg编译真的有那么难么#xff1f;在我编译成功后回头来看#xff0c;网上的资料过多#xff0c;反而使自己走了很多的弯路。即便有些楼主亲自测试后编译成功了#xff0c;由于受机器…1.写在ffmpeg编译前
关于ffmpeg的编译过程google一搜一大堆ffmpeg编译真的有那么难么在我编译成功后回头来看网上的资料过多反而使自己走了很多的弯路。即便有些楼主亲自测试后编译成功了由于受机器的环境、ffmpeg版本、以及个人操作的影响导致在自己编译的时候不成功。
有些帖子发表的时间已经很久了其中提到的到的软件现在也有了很大的更新就如我后面提到的MinGW较新的版本直接安装就可以了无需手动更新一些文件。我写这篇文章的时间是2011/08/30。
系统环境
操作系统Windows 7 家庭普通版 Service Pack 1
Ffmpeg版本ffmpeg-0.6.3ffmpeg-0.6
开发环境VS2008
注
1) win7下的用户要特别注意了之前我在参考http://www.chinavideo.org/viewthread.php?tid9129extrapage%3D1page1
中的帖子编译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/zhucongdzkd126/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 span stylefont-family:Microsoft YaHei;font-size:13px;cd /E/ffmpeg0.6.3 ./configure --enable-shared --disable-static --enable-memalign-hack 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