ffmpeg android编译
2013-01-28 13:57
197 查看
export PREBUILT=/home/jacklam/works/android-ndk-r8d/toolchains/arm-linux-androideabi-4.7 export PLATFORM=/home/jacklam/works/android-ndk-r8d/platforms/android-8/arch-arm export TMPDIR=/home/jacklam/works/temp ./configure \ --target-os=linux \ --arch=arm \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-avfilter \ --disable-postproc \ --disable-swresample \ --disable-avresample \ --disable-symver \ --disable-debug \ --disable-stripping \ --disable-yasm \ --disable-asm \ --enable-gpl \ --enable-version3 \ --enable-nonfree \ --disable-doc \ --enable-static \ --disable-shared \ --enable-cross-compile \ --prefix=/home/jacklam/works/ffmpeg-android-static-lib \ --cc=$PREBUILT/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc \ --cross-prefix=$PREBUILT/prebuilt/linux-x86/bin/arm-linux-androideabi- \ --nm=$PREBUILT/prebuilt/linux-x86/bin/arm-linux-androideabi-nm \ --extra-cflags="-fPIC -DANDROID -I$PLATFORM/usr/include" \ --extra-ldflags="-L$PLATFORM/usr/lib -nostdlib"首先,创建config.sh(上面的内容),并让他有执行权限因为FFMPEG会依赖一些库,要提前安装好一些软件,如LOCAL_LDLIBS := -L$(LOCAL_PATH) -lm -lz 中的m和z lib然后,执行.config.shmakemake install就可以编译出静态库文件libavcodec libavformat libavutil libswscale及其头文件然后,把这些文件放到JNI工程中建立ANDROID.MK
# Copyright (C) 2009 The Android Open Source Project # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := avformat LOCAL_SRC_FILES := libavformat.a LOCAL_CFLAGS :=-Ilibavformat LOCAL_EXPORT_C_INCLUDES := libavformat LOCAL_EXPORT_CFLAGS := -Ilibavformat LOCAL_EXPORT_LDLIBS := -llog include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := avcodec LOCAL_SRC_FILES := libavcodec.a LOCAL_CFLAGS :=-Ilibavcodec LOCAL_EXPORT_C_INCLUDES := libavcodec LOCAL_EXPORT_CFLAGS := -Ilibavcodec LOCAL_EXPORT_LDLIBS := -llog include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := avutil LOCAL_SRC_FILES := libavutil.a LOCAL_CFLAGS :=-Ilibavutil LOCAL_EXPORT_C_INCLUDES := libavutil LOCAL_EXPORT_CFLAGS := -Ilibavutil LOCAL_EXPORT_LDLIBS := -llog include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := swscale LOCAL_SRC_FILES :=libswscale.a LOCAL_CFLAGS :=-Ilibavutil -Ilibswscale LOCAL_EXPORT_C_INCLUDES := libswscale LOCAL_EXPORT_CFLAGS := -Ilibswscale LOCAL_EXPORT_LDLIBS := -llog -lavutil include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libjnivideo LOCAL_SRC_FILES := libjnivideo.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := libjniaudio LOCAL_SRC_FILES := libjniaudio.so include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := hello-jni LOCAL_C_INCLUDES += $(LOCAL_PATH) \ $(LOCAL_PATH)/include LOCAL_SRC_FILES := OnLoad.c hello-jni.c LOCAL_LDLIBS := -L$(LOCAL_PATH) -lm -lz LOCAL_STATIC_LIBRARIES := avformat avcodec avutil swscale LOCAL_SHARED_LIBRARIES := libjniaudio libjnivideo include $(BUILD_SHARED_LIBRARY)其中
libjniaudio,libjnivideo
是2.2的AUDIO和VIDEO访问方式
OnLoad.c hello-jni.c是调用ffmpeg的jni
相关文章推荐
- FFmpeg 1.2 for Android 编译动态库
- FFmpeg-3.3.1移植到Android平台(Mac编译)
- 记录一次Android交叉编译ffmpeg排查错误
- windows环境下用ndk编译出供android的ffmpeg
- cygwin 编译ffmpeg 之android.mk
- Windows XP、Cygwin、NDKr5b编译Android下的ffmpeg
- Android平台下的FFmpeg的学习之路------(一)编译
- 2. FFmpeg 编译 for Android
- mac下 ffmpeg 编译到android平台
- Linux下编译Android平台的ffmpeg库
- 深入了解android平台的jni---编译ffmpeg源码
- 用NDKr9编译最新ffmpeg2.0.1到android平台
- 用Android NDK编译FFmpeg .Android
- Android下编译ffmpeg
- 编译Android下可用的FFmpeg+x264
- MAC系统下编译FFmpeg-Android (从编译到移植Androidstudio成功)(一)
- 编译Android下可用的FFmpeg+x264
- ffmpeg支持x264的android平台编译
- ffmpeg 编译好的库文件和可执行程序----for android
- FFmpeg的Android平台移植—编译篇(验证可用)