FFmpeg 在ubuntu 中編譯出so


 注:我實在Ubuntu中編譯的,配置ndk環境 ,可參考我的另一個文章:http://www.cnblogs.com/x-bing/p/5394496.html

 

1.到FFmpeg官方網站http://www.ffmpeg.org/上去下載源代碼

選擇”Download”進入下載頁面,

選擇該下方的”Downloadgzip tarball”進行下載

 

2.將下載的文件通過共享文件夾方式從windows系統copy到ubuntu系統中

具體操作可參考筆者另一篇文檔:http://www.cnblogs.com/x-bing/p/5217804.html

 

3.在ubuntu系統中  將ffmpeg文件copy到你想要操作的工作目錄,隨便新建一個即可

如筆者的操作目錄:/home/zhaobing/Date

4.解壓文件:ffmpeg-3.0.1.tar.bz2

進入當前操作目錄再解壓,如圖所示:

之后修改ffmpeg-3.0.1/configure文件

如果直接按照未修改的配置進行編譯,結果編譯出來的so文件類似libavcodec.so.55.39.101,版本號位於so之后,Android上似乎無法加載。因此需要按如下修改:

將該文件中的如下四行:

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

 

5.進入解壓的文件目錄並創建文件build_android.sh文件,

如圖:

build_android.sh具體類容如下:

#!/bin/bash
NDK=$NDK_HOME:紅色字體修改真正的NDK安裝目錄
echo It is ok
SYSROOT=$NDK_HOME/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86
export NDK
export SYSROOT
export TOOLCHAIN

function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffserver \
--enable-cross-compile \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one

 

注意修改NDK_HOME為你們安裝的ndk目錄

6從命令行進入該目錄

並給該文件添加可執行屬性:chmod +x build_android.sh 

然后運行該文件生成config.h文件

后調用以下命令編譯:

  1. make  
  2. make install  

完成之后,在ffmpeg-2.2目錄下生成一個android目錄,其中/home/dennis/ffmpeg-2.2/android/arm/lib目錄下的so庫文件如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM