windows环境下用ndk编译出供android的ffmpeg
来源:互联网 发布:新疆天山云广电网络 编辑:程序博客网 时间:2024/04/29 17:00
需要
1、android sudio(android开发工具)
2、ndk (android 的开发工具包,java代码可以通过ndk调用c/c++代码)
3、mingw(暂且理解为windows环境下编译c/c++代码的工具)
4、ffmpeg(处理视频、音频等多媒体的库)
在android studio下的ndk环境搭建:
1、打开sdk manager
2、选择sdk tools选择ndk下载
下载完成之后ndk的目录默认是在sdk的目录下面。
接下来就是配置ndk的环境变量,
新建一个变量叫NDK_ROOT,他的值就是ndk的安装目录,
然后再path的变量底下加上
接下来安装mingw
下载地址
一直点击下一步,知道如下图
红色截图必须安装,其他的可以自行选择。
选择之后点击左上角的installation,进行安装。
mingw的环境变量配置如下:
根据自己的实际安装地址填写。
接下来编译ffmpeg
修改ffmeg源码下的configure文件
将
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
修改成:
增加build_android.sh文件
#!/bin/bash NDK=你对应的ndk目录 SYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64function build_one { ./configure \ --prefix=$PREFIX \ --enable-shared \ --disable-static \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-doc \ --disable-symver \ --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \ --target-os=linux \ --arch=arm \ --enable-cross-compile \ --sysroot=$SYSROOT \ --extra-cflags="-Os -fpic $ADDI_CFLAGS" \ --extra-ldflags="$ADDI_LDFLAGS" \ $ADDITIONAL_CONFIGURE_FLAG make clean make make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
其中NDK,SYSROOT,TOOLCHAIN是你需要更加本地环境情况需要配置的
我自己本地的配置如下
NDK=C:/WorkSoftwear/Sdk/ndk-bundleSYSROOT=$NDK/platforms/android-9/arch-arm/TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
开始编译
安装Mingw成功后,双击目录MinGW/msys/1.0/msys.bat批处理文件,然后输入命令cd 你的目录 进入对应的ffmpeg根目录下(即进入到build.android.sh所在目录下)后输入./build_android.sh进行编译,大概十几分钟左右。(途中会有一些warning,和deprecated api,不会影响结果)。
第一条命令错误是因为linux下文件夹分隔符“/”和window下是相反,复制过来的路径需要修改,结束之后可以看到在ffmpeg文件夹下面多了一个android文件夹
第一条命令错误是因为linux下文件夹分隔符“/”和window下是相反,复制过来的路径需要修改,结束之后可以看到在ffmpeg文件夹下面多了一个android文件夹
如果是eclipse使用,那么你需要一个Android.mk文件,android studio忽略
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE:= libavcodecLOCAL_SRC_FILES:= lib/libavcodec-56.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:= libavformatLOCAL_SRC_FILES:= lib/libavformat-56.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:= libswscaleLOCAL_SRC_FILES:= lib/libswscale-3.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:= libavutilLOCAL_SRC_FILES:= lib/libavutil-54.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:= libavfilterLOCAL_SRC_FILES:= lib/libavfilter-5.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)include $(CLEAR_VARS)LOCAL_MODULE:= libwsresampleLOCAL_SRC_FILES:= lib/libswresample-1.soLOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/includeinclude $(PREBUILT_SHARED_LIBRARY)
- windows环境下用ndk编译出供android的ffmpeg
- window环境下使用ndk编译出android studio/Eclipse能使用的ffmpeg动态库
- windows环境下android studio 2.3 NDK编译FFmpeg
- MAC系统下利用NDK编译可供Android使用的FFmpeg(3.2.4)库
- <android编译ffmpeg+x264+faac> <Android/NDK环境下FFmpeg及AAC,MP3,X264的编译>
- windows下用ndk r9编译ffmpeg
- Windows下用ndk编译ffmpeg
- Windows下用ndk编译ffmpeg
- windows环境 cygwin android-ndk-r7 编译 ffmpeg
- android ndk下编译ffmpeg
- android下ndk编译ffmpeg
- FFMpeg 在Windows 环境下的编译
- FFMpeg在Windows环境下的编译
- Android/NDK环境下FFmpeg及AAC,MP3,X264的编译
- NDK编译FFmpeg库(windows下Eclipse )
- windows环境下编译ffmpeg
- windows xp下编译出ffmpeg.exe
- Android编译供ffmpeg使用的libx264
- 深度学习—网络MSRA初始化方法
- CASE WHEN 两种用法
- 港真,到底应该选择OA还是BPM?
- C/C++基类的析构函数为什么要为虚函数
- 用例图
- windows环境下用ndk编译出供android的ffmpeg
- Windows上开发iphone app
- fatJar插件安装
- 读代码,写结果
- MySQL几种常见格式化日期函数DATE_FORMAT,FROM_UNIXTIME
- Atom Minimap 安装成功但没有效果 解决方案
- html密码框的显示与隐藏
- GOF23的一些总结(五)
- 【每周课程】移动开发相关技术精品课程推荐