http://www.androidpub.com/index.php?mid=android_dev_info&page=1&search_target=tag&search_keyword=FFmpeg&document_srl=1646144
이 글을 보고 작업을 하고 있습니다.
기존 안드로이드 비디오 플레이어에서 지원하지 않는 코덱의 영상을 스트리밍 하기 위해
ffmpeg의 플레어이 기능과 디코딩 기능을 사용해 보려고 해서, NDK와 ffmpeg를 설치하려고 합니다.
해당 글의 내용처럼 config.sh와 configure를 수정하고 cygwin에서 작동시켰습니다.
처음에는 퍼미션 오류가 나서 chmod를 통해 toolchain의 권한을 777로 만들어주었습니다.
그러자 이런 오류가 나타났습니다.
<config.sh>
export ANDROID_ROOT=/cygdrive/c/my-android-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-filters \
--disable-yasm \
--enable-network \
--enable-protocol=tcp \
--enable-demuxer=rtsp \
--enable-decoder=h264
<configure>
...
# set temporary file name
TEMPDIR="ffmpegtmp"
TMP="ffmpegtmp"
: ${TMPDIR:=$TEMPDIR}
: ${TMPDIR:=$TMP}
: ${TMPDIR:="ffmpegtmp"}
...
<config.log>
...
BEGIN ffmpegtmp/ffconf.qVti7PMZ.c
1 #include <stddef.h>
2 #if !(defined __ARM_ARCH_8A__ || defined __TARGET_ARCH_8_A)
3 #error "unsatisfied condition: defined __ARM_ARCH_8A__ || defined __TARGET_ARCH_8_A"
4 #endif
END ffmpegtmp/ffconf.qVti7PMZ.c
/cygdrive/c/my-android-toolchain/bin/arm-linux-androideabi-gcc -marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon -E -o ffmpegtmp/ffconf.M4i3HKfy.o ffmpegtmp/ffconf.qVti7PMZ.c
arm-linux-androideabi-gcc.exe: error: CreateProcess: No such file or directory
check_cpp_condition stddef.h defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4 -mcpu=
check_cpp -mcpu=
BEGIN ffmpegtmp/ffconf.qVti7PMZ.c
1 #include <stddef.h>
2 #if !(defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4)
3 #error "unsatisfied condition: defined __ARM_ARCH_4__ || defined __TARGET_ARCH_4"
4 #endif
END ffmpegtmp/ffconf.qVti7PMZ.c
/cygdrive/c/my-android-toolchain/bin/arm-linux-androideabi-gcc -marm -march=armv7-a -mfloat-abi=softfp -mfpu=neon -mcpu= -E -o ffmpegtmp/ffconf.M4i3HKfy.o ffmpegtmp/ffconf.qVti7PMZ.c
arm-linux-androideabi-gcc.exe: error: missing argument to '-mcpu='
check_cpp_condition stddef.h defined __ARM_ARCH_4T__ || defined __TARGET_ARCH_4T -mcpu=
check_cpp -mcpu=
...
이 부분에 있어서는 구글신님의 힘을 빌어봐도 도저히 감이 안잡혀서 이렇게 질문을 올립니다.
작동사양은 windows7 32bit 이고, 이 앞 과정은 무리 없이 전부 진행되었으며
android-ndk-r9d 버전, ffmpeg 2.3 버전을 사용했습니다.
파일의 편집은 editplus3.0을 사용했고, 생성이 아닌 수정작업만 진행했습니다.
그리고 혹시나 하는 마음에 config.sh의 내용을 직접 타이핑해봤지만, 같은 오류가 발생한 것을
config.log를 통해 확인할 수 있었습니다. 퍼미션은 이미 진행했고,
임시 내용이 저장되는 폴더는 c드라이브에 생성했다가 다시 로컬 밑으로 옮긴 상태입니다.