ubuntu ffmpeg 4.0.1 android 編譯過程記錄

參考:https://blog.csdn.net/bobcat_kay/article/details/80889398

https://github.com/RoyGuanyu/build-scripts-of-ffmpeg-x264-for-android-ndk

音視頻教學:鏈接: https://pan.baidu.com/s/1w9o5C6vIj07pj3zlNK0pfg 密碼: r8qc

1.之前編譯ffmepg 直接用git 放下下載下來,查百度 ffmpeg的編譯步驟,但是在編譯的時候總是在build.sh的時候第一步直接報各種錯,最後思考是不是ffmpeg版本不匹配不上的問題。接下來就到fmpeg官網下載了4.0.1版本。

2.下載完成後搜索了紅色鏈接中的,使用了裏面build.sh內容,編譯的時候能可以執行並看到了執行到最後warnning部分,說明了確實是之前的問題確實跟版本有關。因爲鏈接中的build.sh 只生成了config.h ,修改build.sh 使得其可以去編譯so庫

 

#!/bin/bash
NDK=/home/zdy/ide/ndk/android-ndk-r10e
SYSROOT=$NDK/platforms/android-21/arch-arm/
CPU=armv7-a
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=vfp -marm -march=$CPU "


function build_android
{
#生成config.h
./configure \
--prefix=$PREFIX \
--enable-neon \
--enable-hwaccels \
--enable-shared \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--disable-static \
--disable-doc \
--enable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--enable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--cpu=armv7-a \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG


#開始編譯
sed -i '' 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
sed -i '' 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
sed -i '' 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
sed -i '' 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
sed -i '' 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
sed -i '' 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
sed -i '' 's/HAVE_CBRT 0/HAVE_CBRT 1/g' config.h
sed -i '' 's/HAVE_RINT 0/HAVE_RINT 1/g' config.h
make clean
make -j4
make install
}
build_android

 

 

編譯可以生成so

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章