티스토리 뷰
출처 : Android NDK FFmpeg 컴파일 강좌 (1/4)
Android NDK FFmpeg 컴파일 강좌 (4/4)
Android NDK FFmpeg 컴파일 강좌 (3/4)
Android NDK FFmpeg 컴파일 강좌 (2/4)
Android NDK FFmpeg 컴파일 강좌 (새로운 시도)
http://blog.daum.net/hopefullife/209
Android NDK Overview
Android NDK 빌드환경을 사용하지 않는 Makefile
Decoding audio via Android using FFMpeg
OpenMAX AL for ffmpeg
live-converter
read-only stream buffer interface in ffmpeg #1
FFmpeg port for Android ndk
android-ndk-r7 编译 ffmpeg-0.10
Android AudioRecord to FFMPEG encode native AAC
http://www.2cto.com/kf/201201/116171.html
http://pastebin.com/P02Fmw53
AndroidCompile
config.sh 파일
export TMPDIR=c:/ffmpegtmp export ANDROID_ROOT=/opt/android-8-toolchain ./configure --target-os=linux \ --arch=arm \ --enable-cross-compile \ --cc=$ANDROID_ROOT/bin/arm-linux-androideabi-gcc \ --cross-prefix=$ANDROID_ROOT/bin/arm-linux-androideabi- \ --extra-cflags="-marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon" \ --extra-ldflags="-Wl,--fix-cortex-a8" \ --disable-doc \ --disable-ffmpeg \ --disable-ffplay \ --disable-ffprobe \ --disable-ffserver \ --disable-avdevice \ --disable-devices \ --disable-filters \ --disable-yasm \ --enable-network \ --enable-protocol=tcp \ --enable-demuxer=rtsp \ --enable-decoder=h264
남은그루터기님은 각라이브러리 폴더에 Android.mk을 만드셨지만,
config.sh 파일은 만들고 ./config.sh 실행하고 make 컴파일 실행하면,
각 라이브러리 폴더에 .a 파일로 파일이 생성됩니다.
jni 컴파일 할때도 이 라이브러리 파일만 참조 하시면 됩니다.
CPU별 --extra-cflags 추가 플래그
arm v6
-marm -march=armv6
arm v7vfpv3
-mfloat-abi=softfp -mfpu=vfpv3-d16 -marm -march=armv7-a
arm v7vfp
-mfloat-abi=softfp -mfpu=vfp -marm -march=armv7-a
arm v7n
-mfloat-abi=softfp -mfpu=neon -marm -march=armv7-a -mtune=cortex-a8
arm v6+vfp
-DCMP_HAVE_VFP -mfloat-abi=softfp -mfpu=vfp -marm -march=armv6
컴파일
$ ./config.sh
$ make
BasicPlayer.c 수정 - 남은그루터기 소스 원본의 내용 일부
#include "avcodec.h" #include "avformat.h" #include "swscale.h"
수정된 소스
#include "libavcodec/avcodec.h" #include "libavformat/avformat.h" #include "libswscale/swscale.h"
Application.mk
APP_ABI := armeabi armeabi-v7a APP_PLATFORM := android-8
Android.mk
# 참조 # http://berabue.tistory.com/67 # http://www.newsmth.net/bbsanc.php?path=%2Fgroups%2Fcomp.faq%2FMobileDev%2Fandroid%2FM.1315568907.n0&ap=275 # 컴파일하고자 하는 소스파일 위치를 알려줍니다. Android.mk를 jni에 놔두었으니 프로젝트/jni폴더가 됩니다. LOCAL_PATH := $(call my-dir) FFMPEGDIR := D:/Windows/cygwin/home/bluesanta/BluePlayer/jni/ffmpeg # LOCAL로 시작하는것들을 초기화시킨다고합니다. LOCAL_PATH는 제외. include $(CLEAR_VARS) LOCAL_C_INCLUDES := $(FFMPEGDIR) # List 'cpufeatures' in your list of static library dependencies LOCAL_STATIC_LIBRARIES := cpufeatures # 생성될 so파일명입니다. LOCAL_MODULE := libbasicplayer # 컴파일할 소스파일을 추가합니다. LOCAL_SRC_FILES := Interface.c BasicPlayer.c LDFFMPEG = -L$(FFMPEGDIR)/libavformat -L$(FFMPEGDIR)/libavcodec -L$(FFMPEGDIR)/libavutil -L$(FFMPEGDIR)/libswscale LOCAL_LDLIBS := $(LDFFMPEG) -lavformat -lswscale -lavcodec -lavutil -lz -lm -llog -ljnigraphics # 공유 라이브러리를 생성합니다. include $(BUILD_SHARED_LIBRARY) # At the end of your Android.mk, import the 'android/cpufeatures' $(call import-module,android/cpufeatures)
컴파일
$ ndk-build
- Total
- Today
- Yesterday
- 일본여행
- 송주경
- ble
- flex
- Spring
- ffmpeg
- JavaScript
- 레이싱모델 익스트림 포토 페스티벌
- Delphi Tip
- koba2010
- MySQL
- 튜닝쇼 2008
- android
- 전예희
- KOBA
- Xcode
- sas2009
- Linux
- ubuntu
- NDK
- Delphi
- 동경
- oracle
- 서울오토살롱
- Mac
- SAS
- BPI-M4
- Java
- 지스타2007
- Spring MVC
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |