zoukankan      html  css  js  c++  java
  • 【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. 等待脚本执行完成。

  • 相关阅读:
    编写一个C语言程序,产生一个存放26个英文字母组成的线性链表(a,b,c,…,z),并输出该线性表。
    JavaScript之数组函数
    JavaScript之数据类型转化
    xml约束
    PHP初认识
    JavaScript与css3
    JavaScript与css
    HTML5与JavaScript
    JSON
    xml初认识
  • 原文地址:https://www.cnblogs.com/huty/p/8517634.html
Copyright © 2011-2022 走看看