2011-05-11 119 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找不到,库检测可能会失败。” 我如何解决它。 –