window环境下使用ndk编译出android studio/Eclipse能使用的ffmpeg动态库
2016-08-20 17:26
691 查看
window环境下使用ndk编译出android studio 能使用的ffmpeg动态库
目录window环境下使用ndk编译出android studio 能使用的ffmpeg动态库
ffmepg介绍
环境准备
ndk环境搭建
安装minGW软件并配置它的环境变量
安装过程
环境变量配置
编译ffmpeg
源码下
编译文件配置
编辑ffmpeg文件夹下面的configure文件
增加build_androidsh文件
开始编译
ffmepg介绍
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。它包含了非常先进的音频/视频编解码库libavcodec。–来至百度百科对于一些不熟悉Linux系统的开发者来说,本文将带领你们来使用window操作系统来编辑ffmepg动态,来为我们的android studio使用(或者Eclipse)
环境准备
ndk环境搭建
1.android studio通过sdk Manager/SDK TOOls分类下,NDK直接下载,次方法下载完的路径在android Manager下载目录Android sdk目录下的ndk-bundle中
2.离线下载方式,解压到一个地址即可
接下来环境变量配置
!
安装minGW软件,并配置它的环境变量
下载地址:minGW下载地址安装过程
接下来进入下载管理器过程,类似android Manager的工具
接下来进入选择安装模块的界面,需要安装红色框选择的两个模块
安装方法是右键要安装的模块->下拉选择框中选择“Mark for instatllation->选择菜单栏“Installation->点击选择Apply changes项
会调整到这个界面,apply即可
环境变量配置
配置minGW安装目录下的bin到环境变量编译ffmpeg
源码下
这里下载ffmpeg源码,解压即可编译文件配置
编辑ffmpeg文件夹下面的configure文件
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
将其修改成:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)'
增加build_android.sh文件
其中NDK,SYSROOT,TOOLCHAIN是你需要更加本地环境情况需要配置的#!/bin/bash NDK=你对应的ndk目录 SYSROOT=$NDK/platforms/android-9/arch-arm/ TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/windows-x86_64 function 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=C:/WorkSoftwear/Sdk/ndk-bundle SYSROOT=$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文件夹
如果是eclipse使用,那么你需要一个Android.mk文件,android studio忽略
LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE:= libavcodec LOCAL_SRC_FILES:= lib/libavcodec-56.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libavformat LOCAL_SRC_FILES:= lib/libavformat-56.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libswscale LOCAL_SRC_FILES:= lib/libswscale-3.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libavutil LOCAL_SRC_FILES:= lib/libavutil-54.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libavfilter LOCAL_SRC_FILES:= lib/libavfilter-5.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:= libwsresample LOCAL_SRC_FILES:= lib/libswresample-1.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include include $(PREBUILT_SHARED_LIBRARY)
相关文章推荐
- 使用ubuntu14和ndk 编译ffmpeg在android平台的so动态库
- AndroidStudio2.2.3版本使用CMake编译NDK工程(ffmpeg)
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- android开发 NDK 编译和使用静态库、动态库
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- android开发 NDK 编译和使用静态库、动态库
- android学习——NDK入门 windows下安装cygwin 与 Eclipse使用CDT 自动编译
- ffmpeg2.2在ubuntu下使用NDK编译——并在android工程下测试使用
- 使用NDK交叉编译ffmpeg, android后台可执行。
- Android 使用OpenCV之编译环境非CygWin方式(Win7+Eclipse+ADT+CDT+NDK)
- 在ubuntu 10下使用Android-ndk-r6b成功编译ffmpeg0.8.1
- 在Android上利用NDK编译并使用Spatialite库(Windows环境)
- 关于使用Android NDK编译ffmpeg
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
- android开发 NDK 编译和使用静态库、动态库
- android开发 NDK 编译和使用静态库、动态库
- android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
- windows环境 cygwin android-ndk-r7 编译 ffmpeg