Skip to content

Instantly share code, notes, and snippets.

@izacus
Created December 23, 2013 13:11
Show Gist options
  • Save izacus/8096927 to your computer and use it in GitHub Desktop.
Save izacus/8096927 to your computer and use it in GitHub Desktop.
Compiling ffmpeg for Android
#!/bin/bash
CWD="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
TOOLCHAIN_ROOT=/Users/jernej/Development/android-ffmpeg/toolchain
PREFIX=$CWD/dist/armv7-vfp
export PATH=$TOOLCHAIN_ROOT/bin:$PATH
export CC=arm-linux-androideabi-gcc
export LD=arm-linux-androideabi-ld
export CXX=arm-linux-androideabi-c++
export CFLAGS="-march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -I$PREFIX/include -DANDROID"
export LDFLAGS="-L$PREFIX/lib"
pushd $CWD
# Compile x264
pushd x264
make distclean
./configure --cross-prefix=$TOOLCHAIN_ROOT/bin/arm-linux-androideabi- --host=arm-linux \
--enable-static --disable-cli --disable-interlaced --disable-ffms --prefix=$PREFIX --enable-pthread\
--disable-gpac --disable-lavf --chroma-format=420 --extra-cflags="$CFLAGS" --extra-ldflags="$LDFLAGS"
make -j5
make install
popd
# Compile ffmpeg
pushd ffmpeg
make distclean
./configure --cross-prefix=$TOOLCHAIN_ROOT/bin/arm-linux-androideabi- \
--arch=arm --cpu=armv7-a --disable-neon --target-os=linux --enable-static --disable-shared \
--extra-cflags="$CFLAGS" --extra-ldflags="$LDFLAGS -fwhole-program" \
--prefix=$PREFIX \
--disable-everything --disable-doc --disable-ffprobe --disable-ffserver --enable-ffmpeg --enable-swscale --disable-ffplay \
--enable-demuxer='mov,mp4,3gp,image2' --enable-decoder='h264,h263,png' \
--enable-muxer='mp4,image2' --enable-filter='scale,transpose,fps,hflip,vflip' \
--enable-protocol='file' \
--enable-encoder='libx264,mjpeg' --enable-libx264 --enable-gpl
make -j5
make install
popd
popd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment