ffmpeg 學(xué)習(xí)之路(一) 編譯ffmpeg

一、搭建Linux編譯環(huán)境,如果有Linux環(huán)境可以省略。
1.下載centos6.8.iso映像文件,下載網(wǎng)址:http://archive.kernel.org/centos-vault/6.8/isos/x86_64/CentOS-6.8-x86_64-bin-DVD1.iso
2.下載安裝虛擬機(jī):VMware-workstation-full-14.1.3-9474260.exe
3.安裝虛擬機(jī),安裝centos6.8系統(tǒng)

1.png

4.運(yùn)行centos6.8系統(tǒng)的虛擬機(jī),實(shí)現(xiàn)centos系統(tǒng)與本機(jī)windows系統(tǒng)文件共享
4.1.運(yùn)行centos系統(tǒng),記住以root用戶(hù)登錄,點(diǎn)擊虛擬機(jī)->重新安裝VMware Tools(T)...

2.png

4.2.會(huì)彈出一個(gè)窗口,復(fù)制這個(gè)文件VMwareTools.xxxx.tar.gz到/mnt/cdrom 目錄下,如果沒(méi)有這個(gè)目錄則創(chuàng)建


3.png

4.3.運(yùn)行命令 tar -zxvf VMwareTools-xx.tar.gz 解壓這個(gè)文件
4.4.這時(shí)你會(huì)發(fā)現(xiàn)有這個(gè)目錄


4.png

4.5.打開(kāi)命令行,進(jìn)入到vmware-tools-distrib目錄里面運(yùn)行命令:./vmware-install.pl

5.png

4.6.設(shè)置共享目錄,實(shí)現(xiàn)兩個(gè)系統(tǒng)文件共享

6.png

7.png

把share文件設(shè)置成共享文件


8.png

把下載的android-ndk-r14b-linux-x86_64.zip放到share目錄里面

9.png

重新啟動(dòng)虛擬機(jī)centos系統(tǒng),這時(shí)你進(jìn)入centos系統(tǒng),打開(kāi)/mnt/hgfs目錄里面可以看到一個(gè)share目錄


10.png

這樣就實(shí)現(xiàn)centos和windows文件共享了,以后方便把編譯完成的.so文件拷貝出來(lái)。

接下來(lái)就是重要的步驟了,睜大眼睛看清楚

二.搭建ndk環(huán)境。
1.我們先在/mnt目錄下面新建一個(gè)ndk_build目錄。
2.把/mnt/hgfs/share目錄里面的android-ndk-r14b-linux-x86_64.zip文件拷貝到ndk_build目錄下面,打開(kāi)命令行,cd/mnt/ndk-build->運(yùn)行命令
unzip android-ndk-r14b-linux-x86_64.zip

11.png

12.png

這時(shí)會(huì)生成一個(gè)android-ndk-r14b

13.png

配置全局ndk路徑:命令行輸入命令:vim ~/.bashrc


14.png

保存退出,運(yùn)行命令:
source ~/.bashrc//執(zhí)行環(huán)境變量
ndk-build//查看是否安裝成功,只要不是顯示ndk-build not found,則表示安裝成功
這時(shí)ndk就搭建好了

三.安裝c++環(huán)境,運(yùn)行命令:yum install gcc-c++

四.編譯ffmpeg
1.在/mnt目錄下新建ffmpeg目錄
2.打開(kāi)命令行,進(jìn)入到該目錄下:下載ffmpeg,并且解壓

15.png

3.找到configure文件,并且替換里面的一些設(shè)置:

將該文件中的如下四行:
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)'


16.png

保存文件
4.新建文件android_build.sh

17.png

18.png

打開(kāi)該文件,粘貼以下代碼:
#!/bin/bash
make clean
export NDK=/mnt/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
19.png

5.對(duì)android_build.sh授權(quán),運(yùn)行命令:chmod -R 777 ./android_build.sh

20.png

然后運(yùn)行./android_build.sh

21.png

然后開(kāi)始編譯了.
編譯成功之后會(huì)有這個(gè)文件

22.png

23.png

24.png

至此,動(dòng)態(tài)庫(kù)文件就生成好了,這樣就可以在android上引用啦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容