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. 等待脚本执行完成。

  • 相关阅读:
    JDBC的使用流程
    typescript vscode /bin/sh: ts-node: command not found
    小程序打开app场景
    设置获取cookie,setCookie,getCookie
    解决IOS微信页面回退不刷新问题
    百度小程序添加编译
    百度小程序审核不通过,基础库问题
    Charles Mac 破解安装和证书安装成功抓包单个域名是unknown
    xhrFields实现跨域访问
    Mac上启动nginx报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
  • 原文地址:https://www.cnblogs.com/huty/p/8517633.html
Copyright © 2011-2022 走看看