android ubuntuコンパイルffmpeg

2162 ワード

1.ffmpegのソースコードをダウンロードする
2.新規スクリプトコンパイルファイルbuild_android.sh,他のcpuフォーマットをコンパイルする場合は,cpuでの付与値を変更すればよい.
#!/bin/bash
make clean
# NDK   ,             
export NDK=/home/gjh/android-ndk-r10e
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
#     
function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffserver \
    --enable-cross-compile \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

3.ソースコードのconfigureファイルを修正し、後続のスクリプトのためにsoファイル付きコンパイルバイナリファイルを生成する
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)'
 
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
 
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)'
 
SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR)$(SLIBNAME)'
 
   :
 
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)'
 
LIB_INSTALL_EXTRA_CMD='$$(RANLIB)"$(LIBDIR)/$(LIBNAME)"'
 
SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)'
 
SLIB_INSTALL_LINKS='$(SLIBNAME)'

3.コマンドラインでコンパイルファイルとdos 2 unixファイルをインストールし、コンパイルスクリプトとconfigureの権限を変更し、次のコードを順に入力すればよい
sudo apt-get install bison gcc-multilib g++-multilib
sudo apt install dos2unix
chmod +x ./build_android.sh
chmod +x ./configure
dos2unix ./build_android.sh
dos2unix ./configure

4.スクリプトコンパイルファイルを実行します.3番目のステップを実行せずに直接走った場合、コマンドラインにこのスクリプトファイルが見つからないか、実行が無効になる可能性があります.通常、コマンドラインで次の3行のコードを順番に実行します.もちろん、スクリプトファイルの後ですべて実行したスクリプトにマルチスレッドを加えたスクリプトもあります.これは自分で見ています.
 ./build_android.sh
make 
make install

5.実行終了後、ffmepgソースフォルダにandroidフォルダが表示されたら編集に成功します.
第4部で次の異常を報告しても大丈夫で、最終的なコンパイル結果には影響しません.
arm-linux-androideabi-pkg-config not found