關(guān)于
Android使用FFmpeg(一)--編譯ffmpeg
Android使用FFmpeg(二)--Android Studio配置ffmpeg
Android使用FFmpeg(三)--ffmpeg實(shí)現(xiàn)視頻播放
Android使用FFmpeg(四)--ffmpeg實(shí)現(xiàn)音頻播放(使用AudioTrack進(jìn)行播放)
Android使用FFmpeg(五)--ffmpeg實(shí)現(xiàn)音頻播放(使用openSL ES進(jìn)行播放)
Android使用FFmpeg(六)--ffmpeg實(shí)現(xiàn)音視頻同步播放
Android使用FFmpeg(七)--ffmpeg實(shí)現(xiàn)暫停公你、快退快進(jìn)播放
前言
ffmpeg簡介
在現(xiàn)今這個(gè)階段梳虽,越來越多的app會(huì)涉及到音視頻,那么學(xué)會(huì)使用ffmpeg就很有必要了哥捕。在這個(gè)系類中將講解如何把ffmpeg編譯成動(dòng)態(tài)庫,以及使用ffmpeg實(shí)現(xiàn)音視頻播放和音視頻的采集嘉熊。
編譯環(huán)境
Linux/Ubuntu/centos都行
在windows環(huán)境下可以安裝虛擬機(jī)或者購買一個(gè)云主機(jī)遥赚,作者在金山云購買的一個(gè)Ubuntu主機(jī)。
準(zhǔn)備工作
下載配置ndk阐肤,下載ffmpeg并解壓凫佛。
開始
配置ndk
如果你已經(jīng)配置ok讲坎,請(qǐng)?zhí)^這一步。
我們打開自己的虛擬機(jī)或者云服務(wù)器并且獲取到root權(quán)限愧薛。創(chuàng)建文件夾ndk_build并進(jìn)入到文件夾中晨炕,下載ndk,并解壓
mkdir ndk_build//新建文件夾
cd ndk_build//進(jìn)入到文件夾
wget +linux版本的下載鏈接地址//下載ndk
unzip + 壓縮文件//解壓
配置ndk
vim ~/.bashrc//進(jìn)入環(huán)境變量配置
export NDKROOT=/home/ndk_build/android-ndk-r14b//配置你的安裝路徑
export PATH=$NDKROOT:$PATH//配置路徑
:wq!//保存退出
source ~/.bashrc//執(zhí)行環(huán)境變量
ndk-build//查看是否安裝成功厚满,只要不是顯示ndk-build not found府瞄,則表示安裝成功
下載編譯ffmpeg
下載ffmpeg并解壓
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.sh
#!/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文件后面會(huì)有一串?dāng)?shù)字四濒,無法使用换况,所以得修改他的命名規(guī)則。
將該文件中的如下四行:
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
···
當(dāng)編譯成功過后會(huì)在文件夾中出現(xiàn)android文件夾盗蟆,
在lib文件夾中就有你需要的.so文件了
這樣就差不多編譯完成戈二,如果你需要編譯一份別人已經(jīng)編譯過的ffmpeg,那么請(qǐng)先執(zhí)行./confifure --disable-yasm喳资,然后再自己編譯觉吭。
如果還沒編譯好但是急需的朋友可以直接下載使用。
.so下載地址