win7(x64)编译ffmpeg
来源:互联网 发布:ibatis执行sql语句 编辑:程序博客网 时间:2024/06/02 17:47
公司最近的发展方向似乎还灭有定下来,年前提出的视频平台,目前领导间似乎没有完全商榷下来,年后来了,搭建了服务器,处理了一些繁琐的小事,似乎不知道干嘛了,有一个android平板端的程序需要修改,先放一下吧,把纠结了很久的windows下ffmpeg编译做一个整理。
网上看了很多关于windows下编译ffmpeg的文章,都大同小异,效果也没有想象的那么顺利,遇到很多问题,现在把自己的编译过程跟他家分享一下。
===========================================================================
1.系统环境
操作系统:windows7(x64) 旗舰版 Service Pack 1
2.工具需求
MinGW
windows下没有编译ffmpeg的环境,我们需要安装MinGW来模拟类似linux的环境,安装gcc等编译器。
由于下载了官网最新的MinGW总是不成功,可能是组件没有安装全的关系,这边我下载了别人测试通过的mingw-get-inst-20120426.exe
可以从百度获得他。
ffmpeg源码
这个是编译的主人公。哈哈!
下载地址:http://www.ffmpeg.org/releases/
选择最新的版本进行下载,本人下载的是ffmpeg-2.1.tar.gz
ffpmeg的源码也可以同svn去下载,该方法请自己百度。
SDL
SDL(Simple DirectMedia Layer)是一套开放源代码的跨平台多媒体开发库。
没有他的话,ffmpeg貌似就无法生成ffplay.exe
下载地址:http://www.libsdl.org/download-1.2.php
我们下载源码即可。
3.编译过程
安装MinGW
双击下载的mingw-get-inst-20120426.exe即可进行安装,本人使用了默认的安装路径C:\MinGW,安装过程一路Next,选择组件时选择一下组件
C Compiler(系统默认的)
C++ Compiler
MSYS Basic System
MinGW Developer ToolKit
然后Next,紧接着就是漫长的等待,他会下载很多东西。
经过漫长的等待,终于是成功安装MinGW了。
修改msys.bat
我的MinGW是安装在默认路径C:/MinGW下的,我们使用文本编辑软件修改C:\MinGW\msys\1.0\msys.bat文件,在他的最开始添加一句
call "D:\IDE\VS2010\VC\bin\vcvars32.bat"
D:\IDE\VS2010是我vs2010的安装环境。这步骤是为了生成MSVC++可以使用的ffmpeg库。(这是我看了别人的博客做出的理解,不知道是不是有问题,望对这方面了解的人指出^。^)
编译SDL
我们解压我们下载的SDL源码,将其放到ffmpeg源码的目录下,ffmpeg的源码我放在D:\ffmpeg-2.1\ffmpeg-2.1路径下,SDL源码所在的路径就为:D:\ffmpeg-2.1\ffmpeg-2.1\SDL-1.2.15。
打开C:\MinGW\msys\1.0\msys.bat,进入到通过指令进入到sdl所在的目录执行
./configure --prefix-/usr
Make
Make install
编译后在C:\MinGW\msys\1.0D的bin,include,lib目录下会生成相应的文件。
配置编译ffmpeg
我们打开C:\MinGW\msys\1.0\msys.bat出现熟悉的控制台界面。通过指令进去我们的ffmpeg目录下。
配置:./configure --enable-static --prefix=C:/MinGW/msys/1.0 --extra-cflags="-fno-common"
编译过程中可能会出现yasm/nasm not found or too old.Use --disable-yasm for acrippled build.
解决这个问题有两种办法:
(1)按照他的提示,添加--disable-yasm配置属性。
(2)下载yasm,yasm是用于汇编的编译器,我们可以从http://yasm.tortall.net/Download.html下载yasm(根据自己的需求与系统环境选择对应
的版本),并将他重命名为yasm.exe,然后放置于C:\MinGW\msys\1.0\bin下。
接下来,还会遇到这样的问题:non pthread threading without atomics not supported,try --enable-pthreads or...
我们就通过系统提示的添加--enable-pthreads配置属性来解决它。
配置完成后,执行 make
make install
编译完成后就会发现子啊C:\MinGW\msys\i.0下多了一个local目录,里面有bin,include,lib,share子目录。
运行测试
打开C:\MinGW\msys\1.0\msys.bat,进入ffplay.exe所在的目录,使用指令就可以播放视频了
ffplay.exe 视频名.视频格式
运行时会提示缺少dll库文件(libiconv-2.dll,pthread2GC.dll),网上下载响应的库文件,放置ffplay.exe同目录下即可。
似乎播放效果不好,再找找原因吧。
===========================================================================
如果需要编译过程用到的所有文件,请点击这里
- win7 X64 编译ffmpeg
- win7(x64)编译ffmpeg
- ubuntu1604 X64 编译 ffmpeg
- Openssl WIN7 x64编译
- Windows(x64)编译FFMPEG
- WIN7 X64 GDAL GEOS 编译
- WIN7-x64 VS2008 编译libthrift
- Windows(x64)编译FFMPEG-2.0.1
- Windows(x64)编译FFMPEG-2.0.1
- WIN7+Cygwin+NDK+ffmpeg编译
- Win7 64位ffmpeg编译
- Win7下WinGW+Msys安装编译ffmpeg
- win7用mingw编译ffmpeg+x264总结
- win7下编译android版ffmpeg
- Win7 64位下用MSVC2013 编译 ffmpeg
- mingw+msys编译FFMPEG库 win7
- ffmpeg 在win7 QT mingw下编译
- win7 64位专业版下的x64编译问题
- Mysql创建新用户
- tuple的构造函数
- js 格式化数字
- iOS内IPC(进程间通信)方法小结
- html页面改成jsp后IE和360浏览器不兼容问题
- win7(x64)编译ffmpeg
- SNMP配置:view配置中mask参数的详解
- robotium,相对坐标滑动
- Unity3d 碰撞检测
- 机器学习是什么?
- 通过目标文件自动生成动态库
- Oracle索引学习总结
- 计算机使用记录自动生成文件
- C++体会