마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 NDK FFmpeg를 설치하고 있습니다...

0 추천

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드라이브에 생성했다가 다시 로컬 밑으로 옮긴 상태입니다.
익명사용자 님이 2014년 7월 25일 질문
2014년 7월 25일 수정

1개의 답변

0 추천
aucd29 (218,390 포인트) 님이 2014년 7월 25일 답변
알려주신 코드가 어디까지 진행된건지 알 수 있을까요ㅠㅠ 설정까지만 완료된건가요ㅠㅠ?
build 까지 완료된 것입니다.
제가 ffmpeg를 이용해 스트리밍이 되는 간단한 플레이어를 구현하려 하는데요, 그럼 이제 플레이어 만드는 법만 찾아서 수정시키면 되는건가요??
이거 참고하세요 https://github.com/appunite/AndroidFFmpeg
하지만 이런 부분은 외주 업체에 맏기는걸 추천해드립니다.
...