原文:http://blog.csdn.net/finewind/article/details/42784557

一、准备:

1. 本机环境: win7 64bit;

2. 安装MinGW到C:\MinGW,下载地址http://www.mingw.org/;

3. 安装yasm,下载地址http://yasm.tortall.NET/;

(2,3步请参考http://blog.csdn.net/finewind/article/details/38854517)

4. 下载ffmpeg源码:我是从https://github.com/FFmpeg/FFmpeg上拉的release/2.5分支;

二、使用VS2013编译ffmpeg2.5:

VS2013已基本完整支持C99,使用VS2013,可以省去C89到C99的转换过程,并且FFMPEG2.5版本已经完整支持msvc工具链(实际FFMPEG2.3即已经支持),这使得使用VS2013编译ffmpeg变得异常简单,详细步骤可参考http://blog.csdn.net/finewind/article/details/38854517

1. 安装VS2013,假设装在D盘;

2. 编辑C:\MinGW\msys\1.0\msys.bat文件,在此文件的最前面(@echo off之后)添加一行如下内容:

[plain] view
plain
 copy

  1. call "D:\Program Files(x86)\Microsoft Visual Studio 12.0\VC\bin\vcvars32.bat"

3. 重命名 C:/MinGW/msys/1.0/bin/link.exe 为link_renamed.exe;

4. 在FFMPEG代码目录下新建文件build_msvc.sh,内容如下:

[plain] view
plain
 copy

  1. #!/bin/sh
  2. # for msvc
  3. MSVC_PREFIX=$(pwd)/out/msvc
  4. function build_msvc
  5. {
  6. ./configure     \
  7. --prefix=$MSVC_PREFIX \
  8. --enable-static     \
  9. --enable-shared     \
  10. --enable-debug      \
  11. --toolchain=msvc
  12. make clean
  13. make
  14. make install
  15. }
  16. build_msvc

5. 双击C:\MinGW\msys\1.0\msys.bat文件,在打开的命令行窗口下切换到ffmpeg源码目录,为build_msvc.sh添加执行权限,并执行;

6. 等待脚本执行完成。

二、使用Android NDK编译ffmpeg2.5:

1. 安装android ndk,下载地址:developer.android.com/tools/sdk/ndk/index.html,我使用的是ndk-r9d,安装目录为E:\android;

2. 在FFMPEG代码目录下新建文件build_android.sh,内容如下:

[plain] view
plain
 copy

  1. NDK=E:/android/android-ndk-r9d
  2. SYSROOT=$NDK/platforms/android-19/arch-arm/
  3. TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64
  4. PREFIX=$(pwd)/out/android
  5. function build_android
  6. {
  7. ./configure \
  8. --prefix=$PREFIX \
  9. --enable-shared \
  10. --disable-static \
  11. --disable-doc \
  12. --disable-ffmpeg \
  13. --disable-ffplay \
  14. --disable-ffprobe \
  15. --disable-ffserver \
  16. --disable-avdevice \
  17. --disable-doc \
  18. --disable-symver \
  19. --enable-cross-compile \
  20. --sysroot=$SYSROOT  \
  21. --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
  22. --target-os=linux \
  23. --arch=arm
  24. make clean
  25. make
  26. make install
  27. }
  28. build_android

3. 双击C:\MinGW\msys\1.0\msys.bat文件,在打开的命令行窗口下切换到ffmpeg源码目录,为build_android.sh添加执行权限,并执行;

4. 等待脚本执行完成。

三、使用ARM Linux工具链编译ffmpeg2.5:

1. 安装arm-none-linux-gnueabi-gcc,下载地址:http://www.veryarm.com/arm-none-linux-gnueabi-gcc,我使用的是windows安装版arm-2014.05-29-arm-none-linux-gnueabi.exe,安装路径:F:\arm-201405;

2. 在FFMPEG代码目录下新建文件build_armlinux.sh,内容如下:

[plain] view
plain
 copy

  1. TOOLROOT=F:/arm-201405
  2. PREFIX=$(pwd)/out/armlinux
  3. function build_armlinux
  4. {
  5. ./configure \
  6. --prefix=$PREFIX \
  7. --enable-shared \
  8. --disable-static \
  9. --disable-doc \
  10. --disable-ffmpeg \
  11. --disable-ffplay \
  12. --disable-ffprobe \
  13. --disable-ffserver \
  14. --disable-avdevice \
  15. --disable-doc \
  16. --disable-symver \
  17. --enable-cross-compile \
  18. --sysroot=$TOOLROOT/arm-none-linux-gnueabi/libc  \
  19. --cross-prefix=$TOOLROOT/bin/arm-none-linux-gnueabi- \
  20. --target-os=linux \
  21. --arch=arm
  22. make clean
  23. make
  24. make install
  25. }
  26. build_armlinux

3. 双击C:\MinGW\msys\1.0\msys.bat文件,在打开的命令行窗口下切换到ffmpeg源码目录,为build_armlinux.sh添加执行权限,并执行;

4. 等待脚本执行完成。

【FFMEPG】windows下编译ffmpeg2.5——使用VS2013,ARMLINUX,ANDORID编译ffmpeg的更多相关文章

  1. Windows Embedded Compact 2013升级:VS2013也能编译

    IT之家(www.ithome.com):Windows Embedded Compact 2013升级:VS2013也能编译 今天,微软为Windows Embedded Compact 2013送 ...

  2. windows下sqlite3静态库和动态库的编译

    1.下载sqlite3源码:http://www.sqlite.org/download.html 主要是sqlite-amalgamation-XXXXXXX.zip.sqlite-dll-win3 ...

  3. Windows下使用vim编写代码,使用nmake编译代码,使用vs来调试代码

    1.编写代码 2.编写Makefile,如果要调试, 2.1.需要在编译的时候加上/Zi ( Generates complete debugging information),编译由cl.exe来完 ...

  4. GDAL库简介以及在Windows下编译过程

    GDAL(Geospatial Data Abstraction Library,地理空间数据抽象库)是一个在X/MIT许可协议下的开源栅格空间数据转换库.官网http://www.gdal.org/ ...

  5. # 如何在Windows下运行Linux程序

    如何在Windows下运行Linux程序 一.搭建 Linux 环境 1.1 安装 VMware Workstation https://www.aliyundrive.com/s/TvuMyFdTs ...

  6. 在windows下使用vs2013编译和调试mysql源代码

    1. 准备工作 1)OS:win10 + VS2013 2)mysql 源码(windows版):mysql-5.6.25.zip 3)perl tool:ActivePerl-5.16.3.1604 ...

  7. Windows下VS2013 C++编译测试faster-rcnn

    [原创帖!转载请注明出处:http://www.cnblogs.com/LaplaceAkuir/p/6445189.html] 本人最近研究faster-rcnn,在ubuntu成功跑通matlab ...

  8. Windows下编译OpenSSL(使用VS2013)

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  9. Windows下FFMEPG编译

    FFMPEG在Windows下编译(MIMO431) /************************************************************************ ...

随机推荐

  1. 场效应管种类-场效应管N、P沟道与增强、耗尽型工作原理等知识详解 如何选用晶体三极管与场效应管的技巧

    http://www.kiaic.com/article/detail/1308.html 场效应管种类场效应管 场效应晶体管(Field Effect Transistor缩写(FET))简称场效应 ...

  2. Vue 组件的通信

    vue不得不了解的就是组件间的数据通信(暂且不谈vuex插件). 通信方式根据组件之间的关系有不同之处. 组件关系有下面三种:父-->子.子-->父.非父子 1.父-->子 父向子传 ...

  3. P4213【模板】杜教筛(Sum)

    思路:杜教筛 提交:\(2\)次 错因:\(\varphi(i)\)的前缀和用\(int\)存的 题解: 对于一类筛积性函数前缀和的问题,杜教筛可以以低于线性的时间复杂度来解决问题. 先要构造\(h= ...

  4. Vue 组件中锚点定位的问题

    1 当前组件的顶部 this.$el.scrollIntoView() 2 指定的 Element this.$el.querySelector(selector).scrollIntoView() ...

  5. 026_编写 nginx 启动脚本

    #!/bin/bash#本脚本编写完成后,放置在/etc/init.d/目录下,就可以被 Linux 系统自动识别到该脚本#如果本脚本名为/etc/init.d/nginx,则 #service ng ...

  6. java实现大文件上传和下载

    [文件上传和下载]是很多系统必备功能, 比如PM\OA\ERP等:系统中常见的开发模式有B/S和C/S,而前者主要是通过浏览器来访问web服务器,一般采用七层协议中的[应用层http]进行数据传输,后 ...

  7. [USACO5.5] 矩形周长Picture

    https://www.luogu.org/problemnew/show/P1856 1.每个矩形由两条横向边和两条纵向边组成. 2.对于横向边,按纵坐标排序.设当前讨论的边为 A [s , t] ...

  8. array_merge与array+array的区别

    结果:

  9. 报错 One or more constraints have not been satisfied.

    常出现在导入已有标签时. 需要在<build/><plugins/>里面追加标签 <plugin> <groupId>org.apache.maven. ...

  10. 学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat

    学完微型服务器(Tomcat)对其工作流程的理解,自己着手写个简单的tomcat 2019-05-09   19:28:42 注:项目(MyEclipse)创建的时候选择:Web Service Pr ...