2011-05-11 165 views
1

是否有任何選項在ARM(Android NDK)下動態編譯FFMPEG? (我發現只有關於靜態編譯的文章) 第二個問題:當構建FFMPEG時,我無法找到文件Makefile.am。他們能以某種方式得到它嗎?Android交叉編譯ffmpeg

+0

嘿..你通過這個東西弄?我正在研究完全相同的東西。我遵循這個問題的答案,但是m被卡住了一點。你能幫我嗎? –

回答

2

我選擇了這個工具鏈中比較常用編譯時,因爲大多數手臂Linux產品使用它,你可以爲你的喜好改變 用gcc 的4.4.0,我不知道這是否會與替代 所以請工作不要問。在我成功構建之前,我運行了./configure命令數百個。因此,我分享 什麼工作,也許它會幫助你。

使用Ubuntu 32位03年4月10日在VirtuaBox客戶/主機是Vista的64

更改<USERNAME>到Linux的用戶名

mkdir /home/<USERNAME>/applications 
cd /home/<USERNAME>/applications 
wget http://dl.google.com/android/ndk/android-ndk-r5b-linux-x86.tar.bz2 
wget http://ffmpeg.org/releases/ffmpeg-0.8.7.tar.bz2 
tar -xjf android-ndk-r5b-linux-x86.tar.bz2 
tar -xjf ffmpeg-0.8.7.tar.bz2 
mv ffmpeg-0.8.7 ffmpeg 

NDK=/home/<USERNAME>/applications/android-ndk-r5b 
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-8 --toolchain=arm-eabi-4.4.0 --install-dir=/home/<USERNAME>/applications/droidtooleabi 

cd ffmpeg 
export PATH=/home/<USERNAME>/applications/droidtooleabi/bin:$PATH 
export CC=arm-linux-androideabi-gcc 
./configure \ 
--target-os=linux \ 
--cross-prefix=arm-eabi- \ 
--arch=arm \ 
--enable-small \ 
--disable-armvfp \ 
--prefix=../build/ffmpeg \ 
--disable-encoders \ 
--disable-decoders \ 
--disable-protocols \ 
--disable-muxers \ 
--disable-demuxers \ 
--disable-parsers \ 
--disable-devices \ 
--enable-decoder=mp3 \ 
--enable-decoder=vorbis \ 
--enable-decoder=alac \ 
--enable-decoder=mpeg4 \ 
--enable-decoder=vp8 \ 
--enable-decoder=flac \ 
--enable-decoder=pcm_s8 \ 
--enable-decoder=pcm_u8 \ 
--enable-decoder=h264 \ 
--enable-decoder=h263 \ 
--enable-encoder=adpcm_swf \ 
--enable-decoder=adpcm_swf \ 
--enable-encoder=nellymoser \ 
--enable-decoder=nellymoser \ 
--enable-encoder=flv \ 
--enable-decoder=flv \ 
--enable-encoder=aac \ 
--enable-decoder=aac \ 
--enable-decoder=amrnb \ 
--enable-decoder=amrwb \ 
--enable-encoder=pcm_s16le \ 
--enable-decoder=pcm_s16le \ 
--enable-muxer=amr \ 
--enable-demuxer=amr \ 
--enable-muxer=flv \ 
--enable-demuxer=flv \ 
--enable-muxer=pcm_s16le \ 
--enable-demuxer=pcm_s16le \ 
--enable-muxer=wav \ 
--enable-demuxer=wav \ 
--enable-muxer=matroska \ 
--enable-demuxer=matroska \ 
--enable-muxer=matroska_audio \ 
--enable-demuxer=matroska_audio \ 
--enable-muxer=m4v \ 
--enable-demuxer=m4v \ 
--enable-muxer=mov \ 
--enable-demuxer=mov \ 
--enable-muxer=h263 \ 
--enable-demuxer=h263 \ 
--enable-muxer=h264 \ 
--enable-demuxer=h264 \ 
--enable-muxer=webm \ 
--enable-demuxer=webm \ 
--enable-muxer=ogg \ 
--enable-demuxer=ogg \ 
--enable-muxer=flac \ 
--enable-demuxer=flac \ 
--enable-muxer=mpegts \ 
--enable-demuxer=mpegts \ 
--enable-muxer=mpegtsraw \ 
--enable-demuxer=mpegtsraw \ 
--enable-muxer=aac \ 
--enable-demuxer=aac \ 
--enable-parser=aac \ 
--enable-parser=h263 \ 
--enable-parser=h264 \ 
--enable-parser=vp8 \ 
--enable-parser=mpegvideo \ 
--enable-parser=mpegaudio \ 
--enable-parser=mpeg4video \ 
--enable-parser=flac \ 
--enable-protocol=rtmps \ 
--enable-protocol=rtmpt \ 
--enable-protocol=crypto \ 
--enable-protocol=rtmpte \ 
--enable-protocol=file \ 
--enable-protocol=pipe \ 
--enable-protocol=rtp \ 
--enable-protocol=rtmp \ 
--enable-protocol=tcp \ 
--enable-protocol=http \ 
--enable-protocol=rtmpe \ 
--enable-protocol=udp \ 
--disable-ffprobe \ 
--disable-ffserver \ 
--extra-cflags='-I/home/<USERNAME>/applications/droidtooleabi/sysroot/usr/include -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale -msoft-float' \ 
--extra-ldflags='-nostdlib /home/<USERNAME>/applications/droidtooleabi/sysroot/usr/lib/libc.so /home/<USERNAME>/applications/droidtooleabi/sysroot/usr/lib/libm.so -Wl,-rpath-link=/home/<USERNAME>/applications/droidtooleabi/sysroot/usr/lib -L/home/<USERNAME>/applications/android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/lib/gcc/arm-eabi/4.4.0' \ 
--extra-ldflags='-Wl,-dynamic-linker,/system/bin/linker /home/<USERNAME>/applications/droidtooleabi/sysroot/usr/lib/crtbegin_dynamic.o /home/<USERNAME>/applications/droidtooleabi/sysroot/usr/lib/crtend_android.o' \ 
--extra-libs=-lgcc 
+0

嘿..我跟着這個東西。它終於給我一個警告 「arm-eabi-pkg-config找不到,庫檢測可能會失敗。」 我如何解決它。 –