FFmepg移植編譯ffmpeg4Android教程

FFmepg移植編譯ffmpeg4Android教程。

下載源代碼
https://github.com/FFmpeg/FFmpeg/tree/n3.1.4

文章使用瞭 ffmpeg3.1.4 版本的庫,使用最新版本編譯會出現問題,暫時不使用
ffmpeg3.1.4 不是一個release版本,從tag標簽下找到該版本

這裡寫圖片描述

編譯過程主要就是兩步

第一步 修改ffmpeg的configure文件

為瞭保證我們編譯出的文件是以.so的後綴名
將文本中的3209-3212這4行:

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)'
第二步 配置編譯腳本
#!/bin/sh
NDK=/home/admin/tools/android-ndk-r14b
SYSROOT=$NDK/platforms/android-23/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=arm
PREFIX=./android/$CPU/
ADDI_CFLAGS="-marm"
config_para()
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
#make clean
#make
#make install
}
config_para
第三步 編譯獲得相應的庫

執行 make 和 make install
生成的android/arm/目錄中的文件,圖中標出的為鏈接文件可以刪除:
這裡寫圖片描述

最後使用測試程序進行視頻播放測試

測試程序 : https://github.com/righere/ConvexdSDLPlayer.git

播放瞭一個變形金剛的視頻
這裡寫圖片描述

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *