FFmpeg編譯並集成到android studio

1.FFmpeg編譯

   1.1準備工做html

      下載ubuntu18.04.2 www.ubuntu.com/download/de…(本人是直接在              linux上開發的,若是在windows上須要安裝虛擬機)linux

       下載ffmpeg3.4 ffmpeg.org/releases/ff…(目前最新版本編譯死        的時候有問題,因此選擇先用老版本,3.4版本後不須要更改configure文件內容)android

       下載ndk developer.android.google.cn/ndk/downloa…c++

       (目前用的是r14b,其餘版本試過沒成功)ubuntu

   1.2編譯過程windows

        準備編譯腳本bash

#!/bin/bash

echo "進入編譯ffmpeg腳本" 
NDK=/home/fanqile/Desktop/android-ndk-r16 
#5.0
PLATFORM=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=armv7-a 
#輸出路徑
PREFIX=./android/$CPU 
function buildFF 
{ 
 echo "開始編譯ffmpeg" 
 ./configure \
 --prefix=$PREFIX \
 --target-os=android \
 --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
 --arch=arm \
 --cpu=$CPU  \
 --sysroot=$PLATFORM \
 --extra-cflags="$CFLAG" \
 --cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
 --nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
 --enable-shared \
 --enable-runtime-cpudetect \
 --enable-gpl \
 --enable-small \
 --enable-cross-compile \
 --disable-debug \
 --disable-static \
 --disable-doc \
 --disable-ffmpeg \
 --disable-ffplay \
 --disable-ffprobe \
 --disable-ffserver \
 --disable-postproc \
 --disable-avdevice \
 --disable-symver \
 --disable-stripping \
 $ADDmake 
 -j16
 make install
 echo "編譯結束!"
 }########################################################### 
echo "編譯支持neon和硬解碼"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm \ --enable-neon \ --enable-jni \ --enable-mediacodec \ --enable-decoder=h264_mediacodec \ --enable-hwaccel=h264_mediacodec "
buildFF
###########################################################
echo "編譯不支持neon和硬解碼"
CPU=armv7-a
PREFIX=./android/$CPU
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
ADD=
buildFF
複製代碼

注:複製的狀況下要把\後面空格去掉app

開始編譯ide

先把剛寫完的腳本命名爲build_android.sh,而後把它保存到ffmpeg3.4文件夾中,再ffmpeg文件夾空白處右鍵打開終端,經過linux命令給build_android.sh賦予最高權限post


而後輸入./build_android.sh開始編譯,大概等幾分鐘就編譯完成了


如今ffmpeg3.4文件夾下就新生成了一個android文件夾,裏面有兩個文件,一個是支持neon和硬解碼,一個是不支持的

再進進去就有三個文件夾,第一個是頭文件,第二個是so庫,第三個是案例


1.3移植到androidstudio

打開android studio 新建工程,勾選c++


後面再選c++11,後面直接next就行了


工程建好後,把前面編譯好的庫複製到app/libs中


接着開始編譯CmakeLists.txt(前提是要安裝cmake,sdk manager裏能夠選擇)


後面開始配置app中的build.gradle


最後點Build——make project ,完成,build裏生成 libnative-lib.so


整個編譯到移植到這裏所有完成了。

相關文章
相關標籤/搜索