照做就完事了:Mac下编译ffmpeg生成so文件
生活随笔
收集整理的這篇文章主要介紹了
照做就完事了:Mac下编译ffmpeg生成so文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
下載ffmpeg源碼
下載地址:www.ffmpeg.org/download.ht…
下載NDK
下載地址:user-gold-cdn.xitu.io/2019/4/10/1…
編寫Android腳本
解壓好ffmpeg和ndk后; 修改ffmpeg的configure文件:
因為android只能加載*.so結(jié)尾的動態(tài)庫,不能識別如*.so.57結(jié)尾的 所以將:
#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)’ 復(fù)制代碼替換為:
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB)?"$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)' 復(fù)制代碼在終端輸入以下命令設(shè)置權(quán)限(具體目錄根據(jù)自身情況修改):
chmod 777 /Users/**/ffmpeg-3.2.4/build_android.sh 復(fù)制代碼進(jìn)入ffmpeg目錄下終端輸入命令:
./configure 復(fù)制代碼注意如果不輸入這一步,后面編譯時會報錯
Unknown option "--disable-ffserver"... 復(fù)制代碼上述操作完成后,編寫android編譯腳本
在ffmpeg-3.2.4/下創(chuàng)建 build_android.sh文件,并將以下內(nèi)容復(fù)制到此文件:
#!/bin/bash export NDK_HOME=/Users/*/Library/Android/sdk/ndk-bundle export PLATFORM_VERSION=android-14 function build {echo "start build ffmpeg for $ARCH"./configure --target-os=linux \--prefix=$PREFIX --arch=$ARCH \--disable-doc \--enable-shared \--disable-static \--disable-yasm \--disable-asm \--disable-symver \--enable-gpl \--disable-ffmpeg \--disable-ffplay \--disable-ffprobe \--disable-ffserver \--cross-prefix=$CROSS_COMPILE \--enable-cross-compile \--sysroot=$SYSROOT \--enable-small \--extra-cflags="-Os -fpic $ADDI_CFLAGS" \--extra-ldflags="$ADDI_LDFLAGS" \$ADDITIONAL_CONFIGURE_FLAGmake cleanmakemake installecho "build ffmpeg for $ARCH finished" }#arm ARCH=arm CPU=arm PREFIX=/Users/*/Documents/ffmpeg-4.1.3/arm TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64 CROSS_COMPILE=$TOOLCHAIN/bin/arm-linux-androideabi- ADDI_CFLAGS="-marm" SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/ build#x86 ARCH=x86 CPU=x86 PREFIX=/Users/*/Documents/ffmpeg-4.1.3/arm/x86 TOOLCHAIN=$NDK_HOME/toolchains/x86-4.9/prebuilt/darwin-x86_64 CROSS_COMPILE=$TOOLCHAIN/bin/i686-linux-android- ADDI_CFLAGS="-march=i686 -mtune=intel -mssse3 -mfpmath=sse -m32" SYSROOT=$NDK_HOME/platforms/$PLATFORM_VERSION/arch-$ARCH/ build 復(fù)制代碼上述腳本需要根據(jù)自身實際安裝的目錄進(jìn)行一些修改:
保存后執(zhí)行:
./build_android.sh 復(fù)制代碼等待一段時間后 需要的so文件就生成在對應(yīng)目錄啦
總結(jié)
以上是生活随笔為你收集整理的照做就完事了:Mac下编译ffmpeg生成so文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后端技术图谱
- 下一篇: 数据结构-王道-排序