簡單易上手編譯FFmpeg

FFmpeg 編譯簡單上手

轉載請註明文章出處sudeqiangxx 前言:html

關於音視頻開發咱們須要準備的知識就是要先學習ffmpeg框架的學習,對於Android開發者而言,咱們須要把FFmpeg源碼編譯成.so文件,導入到咱們的工程中,才能引用到框架中的方法對音視頻進行處理。在這方面的專家雷大佬中國傳媒大學博士,你們能夠訪問他的博客,只惋惜,天怒英才,才26歲的大佬就離開了咱們。在這裏致敬咱們心中的大神,願天堂沒有代碼。linux

準備資料

1.準備環境(linux,mac)建議不要在windows上編譯,很麻煩,還須要去搭建環境,能夠安裝虛擬機編譯。如下選擇用mac系統進行編譯。 2.下載ffmpeg源碼,我編譯的是4.1.3版本的ffmpegandroid

3.下載ndk,建議不須要下載最新版的ndk 本文使用的r17c版本windows


修改ffmpeg配置文件

1.修改configure文件,找到下面代碼 如圖: bash

ffmpeg

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)'
複製代碼

保存好就okide

ndk 環境配置

打開終端使用命令:open ~/.bash_profile  便可打開環境變量配置,到這一步應該沒問題。
複製代碼

編寫腳本文件

腳本的做用就是把ffmpeg源碼打包成咱們須要的.so文件,供咱們的Android項目調用。學習

新建一個在ffmpeg文件夾下新建android_build.sh文件。ui

#!/bin/bash

ADDI_CFLAGS="-marm"
API=19
PLATFORM=arm-linux-androideabi
CPU=armv7-a
#本身本地的ndk路徑。
NDK=/Users/deqiangsu/develop/ndk/android-ndk-r17c
SYSROOT=$NDK/platforms/android-$API/arch-arm/
ISYSROOT=$NDK/sysroot
ASM=$ISYSROOT/usr/include/$PLATFORM
TOOLCHAIN=$NDK/toolchains/$PLATFORM-4.9/prebuilt/darwin-x86_64
#本身指定一個輸出目錄,用來放生成的文件的。
OUTPUT=/Users/deqiangsu/develop/ffmpeg/ffmpeg-3.3.9
function build
{
./configure \
--prefix=$OUTPUT \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-avdevice \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=android \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-I$ASM -isysroot $ISYSROOT -Os -fpic -marm" \
--extra-ldflags="-marm" \
$ADDITIONAL_CONFIGURE_FLAG
  make clean
  make 
  make install
}
build
複製代碼

複製上面的腳本代碼到咱們新建的文件中,打開終端,到ffmpeg文件下使用命令就能夠進行編譯idea

命令: ./android_build.sh 
複製代碼
相關文章
相關標籤/搜索