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
若是你已經配置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並解壓.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,而後再本身編譯。
若是還沒編譯好可是急需的朋友能夠直接下載使用。