【FFMEPG】windows下编译ffmpeg2.5——使用VS2013,ARMLINUX,ANDORID编译ffmpeg

原文: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:MinGWmsys1.0msys.bat文件,在此文件的最前面(@echo off之后)添加一行如下内容:

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. call "D:Program Files(x86)Microsoft Visual Studio 12.0VCinvcvars32.bat"  

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

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

[plain] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. #!/bin/sh  
  2.   
  3. # for msvc  
  4. MSVC_PREFIX=$(pwd)/out/msvc       
  5.   
  6. function build_msvc  
  7. {  
  8. ./configure       
  9.     --prefix=$MSVC_PREFIX   
  10.     --enable-static       
  11.     --enable-shared       
  12.     --enable-debug        
  13.     --toolchain=msvc  
  14. make clean  
  15. make          
  16. make install      
  17. }  
  18.   
  19. build_msvc  
5. 双击C:MinGWmsys1.0msys.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
 在CODE上查看代码片派生到我的代码片
  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.   
  6. function build_android  
  7. {  
  8. ./configure   
  9.     --prefix=$PREFIX   
  10.     --enable-shared   
  11.     --disable-static   
  12.     --disable-doc   
  13.     --disable-ffmpeg   
  14.     --disable-ffplay   
  15.     --disable-ffprobe   
  16.     --disable-ffserver   
  17.     --disable-avdevice   
  18.     --disable-doc   
  19.     --disable-symver   
  20.     --enable-cross-compile   
  21.     --sysroot=$SYSROOT    
  22.     --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-   
  23.     --target-os=linux   
  24.     --arch=arm  
  25. make clean  
  26. make  
  27. make install  
  28. }  
  29.   
  30. build_android  
3. 双击C:MinGWmsys1.0msys.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
 在CODE上查看代码片派生到我的代码片
  1. TOOLROOT=F:/arm-201405  
  2. PREFIX=$(pwd)/out/armlinux  
  3.   
  4. function build_armlinux  
  5. {  
  6. ./configure   
  7.     --prefix=$PREFIX   
  8.     --enable-shared   
  9.     --disable-static   
  10.     --disable-doc   
  11.     --disable-ffmpeg   
  12.     --disable-ffplay   
  13.     --disable-ffprobe   
  14.     --disable-ffserver   
  15.     --disable-avdevice   
  16.     --disable-doc   
  17.     --disable-symver   
  18.     --enable-cross-compile   
  19.     --sysroot=$TOOLROOT/arm-none-linux-gnueabi/libc    
  20.     --cross-prefix=$TOOLROOT/bin/arm-none-linux-gnueabi-   
  21.     --target-os=linux   
  22.     --arch=arm  
  23. make clean  
  24. make  
  25. make install  
  26. }  
  27.   
  28. build_armlinux  
3. 双击C:MinGWmsys1.0msys.bat文件,在打开的命令行窗口下切换到ffmpeg源码目录,为build_armlinux.sh添加执行权限,并执行;

4. 等待脚本执行完成。

原文地址:https://www.cnblogs.com/huty/p/8517634.html