Android使用FFmpeg(一)--編譯ffmpeg

關於

Android使用FFmpeg(一)--編譯ffmpeg
Android使用FFmpeg(二)--Android Studio配置ffmpeg
Android使用FFmpeg(三)--ffmpeg實現視頻播放
Android使用FFmpeg(四)--ffmpeg實現音頻播放(使用AudioTrack進行播放)
Android使用FFmpeg(五)--ffmpeg實現音頻播放(使用openSL ES進行播放)
Android使用FFmpeg(六)--ffmpeg實現音視頻同步播放
Android使用FFmpeg(七)--ffmpeg實現暫停、快退快進播放linux

前言

ffmpeg簡介
在現今這個階段,愈來愈多的app會涉及到音視頻,那麼學會使用ffmpeg就頗有必要了。在這個系類中將講解如何把ffmpeg編譯成動態庫,以及使用ffmpeg實現音視頻播放和音視頻的採集。android

編譯環境

Linux/Ubuntu/centos都行
在windows環境下能夠安裝虛擬機或者購買一個雲主機,做者在金山雲購買的一個Ubuntu主機。vim

準備工做

下載配置ndk,下載ffmpeg並解壓。windows

開始

配置ndk

若是你已經配置ok,請跳過這一步。
咱們打開本身的虛擬機或者雲服務器而且獲取到root權限。建立文件夾ndk_build並進入到文件夾中,下載ndk,並解壓centos

mkdir ndk_build//新建文件夾
cd ndk_build//進入到文件夾
wget +linux版本的下載連接地址//下載ndk
unzip + 壓縮文件//解壓

配置ndkbash

vim ~/.bashrc//進入環境變量配置
export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安裝路徑
export PATH=$NDKROOT:$PATH//配置路徑
:wq!//保存退出
source ~/.bashrc//執行環境變量
ndk-build//查看是否安裝成功,只要不是顯示ndk-build not found,則表示安裝成功

下載編譯ffmpeg

下載ffmpeg並解壓服務器

 

 

下載ffmpeg並解壓.pngapp

wget http://ffmpeg.org/releases/ffmpeg-2.6.9.tar.gz
tar -xzf  ffmpeg-2.6.9.tar.gz

修改configure文件並新建android_build.sh文件,編輯android_build.shide

#!/bin/bash
make clean
export NDK=/home/ndk_build/android-ndk-r14b
export SYSROOT=$NDK/platforms/android-9/arch-arm/
export TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
export CPU=arm
export PREFIX=$(pwd)/android/$CPU
export ADDI_CFLAGS="-marm"
./configure --target-os=linux \
--prefix=$PREFIX --arch=arm \
--disable-doc \
--enable-shared \
--disable-static \
--disable-yasm \
--disable-symver \
--enable-gpl \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-doc \
--disable-symver \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make
make install

其中NDK是你本身剛剛配置的ndk路徑,SYSROOT爲platforms中的路徑,TOOLCHAIN爲toolchains裏面中的路徑,依次配置好事後保存並退出。
修改configure,若是你不修改的話,編譯出來事後的.so文件後面會有一串數字,沒法使用,因此得修改他的命名規則。
將該文件中的以下四行:ui

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

編譯.sh文件
···
./android_build.sh
···
當編譯成功事後會在文件夾中出現android文件夾,


在lib文件夾中就有你須要的.so文件了


這樣就差很少編譯完成,若是你須要編譯一份別人已經編譯過的ffmpeg,那麼請先執行./confifure --disable-yasm,而後再本身編譯。
若是還沒編譯好可是急需的朋友能夠直接下載使用。

so下載地址

相關文章
相關標籤/搜索