Mac Os下面編譯FFmpeg

這篇文章主要是講述如何在mac os下面編譯FFmpeg。

1.下載FFmpeg

官網地址是http://ffmpeg.org/,然後找到mac os版本的,點擊下載。

下載後進行解壓。

因爲FFmpeg需要用到ndk開發環境,同時還需要下載ndk安裝包,安裝後解壓。

2.配置環境

啓動終端,進入home目錄

創建.bash_profile文件(touch .bash_profile)

編輯.bash_profile文件(open -e .bash_profile)

如同我們編輯android sdk開發環境一樣,我們如果要編譯ffmpeg,就需要配置AndroidNDK開發環境,

下載ndk的網址如下:

https://developer.android.google.cn/ndk/downloads/

我的配置後的文件如下:

關閉文件,執行 source .bash_profile命令。

這時候隨便打開一個終端窗口,輸入ndk-build命令來查看剛纔的配置是否成功。

3.開始編譯

因爲android平臺不能識別FFmpeg編譯出來的動態庫文件名,所以需要手動修改FFmpeg的configure文件。

用編輯器打開configure文件,找到

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)'

4.編寫shell文件

 

#!/bin/sh
NDK=/Users/preqel/AndroidStudioProjects/android-ndk-r20b/androidndk_r20b
SYSROOT=$NDK/platforms/android-21/arch-arm
NDKTOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64
function build_one
{
  ./configure \
  --prefix=$PREFIX \
  --enable-shared \
  --disable-static \
  --disable-doc \
  --disable-ffmpeg \
  --disable-ffplay \
  --disable-ffprobe \
  --disable-ffserver \
  --disable-advevice \
  --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
}
CPU=arm
PREFIX=${pwd}/android/$CPU
ADDI_CFLAGS="-marm"
build_one

這一步比較難,必須要熟悉shell腳本中每個語句的意思,否則很有可能因爲手敲多了一個空格,或者路徑配置不對,造成編譯不通過,而且排查原因也十分困難。

 

 

#5.編譯動態鏈接庫

執行./ build_android.sh

 

發佈了32 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章