FW:windows下编译ffmpeg

来源:互联网 发布:数据流程图中的符号 编辑:程序博客网 时间:2024/04/27 23:33
windows下编译ffmpeg
2010-11-28 23:29

1.下载ffmpeg源码

到官网上http://ffmpeg.org/下

解压到c:\ffmpeg下

 

2.安装MSys

bash-3.1-MSYS-1.0.11-tar.bz2

msysCORE-1.0.11-2007.01.19-1.tar.bz2

coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2

make-3.81-MSYS-1.0.11-2.tar.bz2

解压msysCORE-1.0.11-2007.01.19-1.tar.bz2到C:\msys
解压bash-3.1-MSYS-1.0.11-tar.bz2,将bash-3.1\bin下内容拷贝至c:\msys\bin下,覆盖原内容
解压coreutils-5.97-MSYS-1.0.11-snapshot.tar.bz2,将bin下内容拷贝至C:\msys\bin下
解压make-3.81-MSYS-1.0.11-2.tar.bz2,将里面的make.exe拷贝至c:\msys\bin下覆盖原make.exe
打开C:\msys\postinstall目录下执行pi.bat,在出现的提示中输入n。
打开C:\msys\etc\fstab.sample把它重命名为fstab,编辑内部,把c:\mingw \mingw改成C:\msys\mingw。
在系统的环境配置中添加C:\msys\bin

 

3.安装MinGW

mingw-get-inst-20101030.exe(http://sourceforge.net/project/showfiles.php?group_id=2435)
反正是安装程序就行,版本无所谓

安装到C:\msys\mingw


4.编译

打开msys.bat

cd/c/ffmpeg

--编译动态库
./configure --enable-shared --disable-static--enable-memalign-hack
make install

--编译静态库
./configure --enable-static--disable-shared--enable-memalign-hack
make install

这样,文件都会产生在C:\msys\local下

此外,还有添加第三方库支持。还没尝试。
参考网址:
http://hi.baidu.com/yongsheng_li/blog/item/05e48743f403c7179213c6b0.html
http://blog.sina.com.cn/s/blog_4c451e0e0100ao8h.html

 


类别:Ffmpeg FW:windows下编译ffmpeg 添加到搜藏 分享到i贴吧 |浏览(59) | 评论 (0)
 
上一篇:TwoMonthsFly~~    下一篇:Usinglibavformat and libavcod...
 
相关文章:
•如何将ffmpeg在windows编译和使...         •如何将ffmpeg在windows编译和使...•如何将ffmpeg在windows编译和使...         •FFMPEG在windows平台编译的详细...•ffmpeg在windows下成功编译         •[原]Windows下FFmpeg下载和Linux...•Compile FFmpeg inWindows - 编...         •Compile FFmpeg inWindows - 编...•FFMPEG在WINDOWS下编译操作手册2...         •在windows下编译FFMPEG更多>>
【ffmpeg手机系列】Cygwin 交叉编译 ffmpeg forwince
2011-01-19 16:54

Cygwin 交叉编译 ffmpegfor win ce

豆豆网   技术应用频道   20090522  【字号:收藏本文

关键字:ibatisnet尾递归NVelocitySourceSafeSharpMap 

Cygwin 交叉编译 ffmpegfor win ce 

  ffmpeg作为一个开源的比较好的解码库,编码库,音视频播放位一体的程序,很值得参考,虽然直接把他一直到mobile上面效率不佳,但是经过针对arm 汇编优化后的解码库还是不错的。我在我的项目里面准备使用它的解码库,根据自己的实际需要裁减编译成vs2005可用的静态库。

  从网上找了很多资源,可是都有头没尾的,自己实际编译了一下。整理供自己以后编译用,呵呵。

  环境:WindowsXP 下用Cygwincygwin的版本无所谓,安装一个相对完整的cygwinok了。 

  编译器用cygwin-cegcc-mingw32ce-0.51.0-1,这个是一整个cygwin或者linux下面编译ce程序的工具链。下载地址是http://ncu.dl.sourceforge.net/sourceforge/cegcc/cygwin-cegcc-cegcc-0.51.0-1.tar.gz

  源码:我用的是国外一个播放器裁减的他们在windowsce上面编译过的版本,下载地址为http://nchc.dl.sourceforge.net/sourceforge/ambulant/ffmpeg-wm5.zip  20092月份的一个版本,还可以接受,不是太老。

  下面就开始了: 

  1.cygwin-cegcc-mingw32ce-0.51.0-1解压到 cygwin的安装目录下,如果驻cygwin的安装目录为c:cygwin 

   那么解压后cegcc的目录应该为c:cygwinoptmingw32ce

  2.将源码解压,随便你想放到哪里,假设c:cygwinffmpegwm5 下面就行

  3.打开cygwin,进入源码目录,如 cd/ffmpegwm5

  4.修改PATH 在命令行健入 PATH=/opt/mingw32ce/bin:$PATH

  5.开始编译,输入以下configure选项: 

./configure --enable-memalign-hack --target-os=mingw32ce --arch=arm--enable-cross-compile 
--cross-prefix=arm-wince-mingw32ce---enable-small 
--enable-static --enable-shared 
--disable-mmx --disable-zlib --disable-ipv6--disable-debug 
--disable-ffmpeg --disable-ffserver--disable-ffplay 
--disable-encoders --disable-network --disable-muxers--disable-decoders --disable-filters 
--disable-demuxers --disable-devices --disable-protocols--disable-bsfs --disable-parsers 
--enable-decoder=mpeg4 
--enable-decoder=h264 --extra-cflags="-march=armv4-mtune=xscale"

  这个是我自己的,你可以./configure--help来看具体的configure配置选项,还有他的解码库什么的。

  6.打开c:cygwinoptmingw32cearm-wince-mingw32ceincludeerrno.h 

  注掉  11 //#ifdef__COREDLL__ 
        12 //#include_next<errno.h> 
        13 //#else 
        107//#endif

   当然,你要高兴只把11行改成//#ifdef0 也行。都一样的。

   然后,按先后顺序,分别进入libavutil,libavcodec,libavformat,分别make,就得到 dll,但是他最后会提示你make:libcommand not found之类的错误,这个不要担心,呵呵,是不能生成lib而已。

  7.pexports *.dll > *.def  用这个工具对咱们的dll生成def文件,方便下一步生成lib,这个工具的下载地址是http://www.emmestech.com/software/pexports-0.43/pexports-0.43.zip 下载完了再bin目录下找到这个工具,生成def文件即可。

  8. 生成lib文件。MicrosoftVisual Studio 8VCbinlib.exe /def:*.def/MACHINE:ARM 这个就可以生成lib,他中间可能会提示你mspdb80.dll无法找到,这个文件其实有,只是和lib不同路径。解决方法:添加系统变量(Path),这样:我的电脑->属性->高级->环境变量->系统变量,在path中添加C:ProgramFilesMicrosoft Visual Studio 8Common7IDE;,注意结尾最后用。下面在运行就可以生成.lib文件了。具体各个编译器生成libdll什么不同的,可以参考 http://www.geocities.com/yongweiwu/stdcall.htm

  9.希望大家喜欢,因为lib我编译出来的不一定适合大家用,就不上了,大家自己编译吧。

  ps:

  很多同学发现这个方法引用函数没有问题,可是在引用dll里面全局变量的时候会有问题。这个主要是因为方法不对,下面给出全局变量的调用办法。

#pragmacomment(lib,"../ffmpeg/lib/avcodec.lib") 
extern AVCodec _declspec(dllimport)h263_decoder; 
extern AVCodec _declspec(dllimport)mpeg4_decoder; 
extern AVCodec _declspec(dllimport)h264_decoder; 


类别:ffmpeg相关 

0 0
原创粉丝点击