原文: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. c++类的基本形式(一个简单类的简单sample,命名空间)

    有人把类说成是占用固定大小内存块的别名,其定义时不占用空间 #include<iostream> #include<string> using namespace std; c ...

  2. Codeforces Round #584 A. Paint the Numbers

    链接: https://codeforces.com/contest/1209/problem/A 题意: You are given a sequence of integers a1,a2,-,a ...

  3. P5043【模板】树同构([BJOI2015]树的同构)

    思路:树哈希 提交:1次 题解: 怕不是用的oi-wiki上的公式: \[f_u=size_u\times\sum f_{son_{u,i}}\times Base^{i-1}\] #include& ...

  4. npm install命令

    1. --save-prod/-P 使用该命令后,会在package.json的dependencies中出现,是生产环境依赖: 该命令是默认命令. npm install react // 等同于 ...

  5. 深入理解Java输入输出流

    Java.io包的File类,File类用于目录和文件的创建.删除.遍历等操作,但不能用于文件的读写. Java 对文件的写入和读取涉及到流的概念,写入为输出流,读取为输入流.如何理解流的概念呢?可以 ...

  6. cmake 学习-cmakelists.txt

    #设置库的路径,电脑里有qt4以及qt5,使用qt5时 设置qt5的环境变量(路径). set(CMAKE_PREFIX_PATH $ENV{QTDIR}) #设定工程名称 Project(prona ...

  7. Robot Framework(十六) 扩展RobotFramework框架——使用监听器接口

    4.3使用监听器接口 Robot Framework有一个侦听器接口,可用于接收有关测试执行的通知.监听器是具有某些特殊方法的类或模块,它们可以用Python和Java实现.监听器接口的示例用法包括外 ...

  8. Spring基础环境搭建所需要的jar包

    红色标明的jar包.是spring框架开发的基础jar包. 必要jar包. spring-core-4.1.6.RELEASE.jar 框架核心jar包. spring-beans-4.1.6.REL ...

  9. Java并发指南3:并发三大问题与volatile关键字,CAS操作

    本文转载自互联网,侵删   序言 先来看如下这个简单的Java类,该类中并没有使用任何的同步. 01 final class SetCheck { 02 private int  a = 0; 03 ...

  10. 记录Redis连接未正确释放,TCP连接过多,造成服务器上部分功能不可用和linux服务器内存一直增加问题

    问题1 多人共享开发服务器(windows系统),我们小组有个程序,定时检测mongodb,redis,mysql连接是否正常,程序启动一段时间后,服务器管理人员找到我们说,我们的某个pid的程序把T ...