Android sdk上移植FFmpeg

背景:
最近想把FFmpeg移植到Android SDK上,以便在設備上調試或者自己寫寫小代碼,基於的版本是Android 4.4。

1、下載FFmpeg源碼

這一步沒什麼好說的,貼上官網路徑http://ffmpeg.org/download.html,從這裏可以下載到最新的FFmpeg。

2、在Android平臺上編譯

將其移到Android源碼目錄下。FFmpeg的編譯分3步驟:
1)執行FFmpeg源碼下的./configure腳本,帶上需要的參數即可。
編譯選項還是很多的,可以參下該文章:
https://blog.csdn.net/momo0853/article/details/78043903#標準選項standard-options
2)make;make install 這樣就會將編譯的東西輸出到指定的目錄之下

爲了方便,謝了一個編譯腳本,主要是編譯一些靜態庫以供其他程序調用,我這裏主要是配置了以下幾個選項:

1)–sysroot=$SYSROOT

指定了交叉工具鏈的頭文件和庫位,例如Android 32位位置$ndk_dir/platforms/android-14/arch-arm,我使用的則是Android SDK下的ndk,如果是依賴自己下載ndk編譯也可以。

2)–cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-
設置編譯鏈的前綴,使用的是Android SDK的編譯器

3)–arch=$CPU
設置編譯的CPU架構,我們時arm

4)–prefix=$PREFIX
指定了編譯輸出路徑,待會會生成相應的庫和頭文件

附上腳本:

#!/bin/bash
echo "start configure,waiting...";
SYSROOT=$(pwd)/../prebuilts/ndk/current/platforms/android-14/arch-arm/
TOOLCHAIN=$(pwd)/../prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.7
CPU=arm
PREFIX=$(pwd)/out/$CPU

./configure \
    --prefix=$PREFIX \
    --enable-cross-compile \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=$CPU \
    --sysroot=$SYSROOT \
	--extra-libs=-lgcc \
    --disable-shared \
    --enable-static \
    --disable-doc \
    --disable-ffserver \
	--disable-ffmpeg \
	--disable-ffprobe \
    --disable-parsers \
	--enable-parser=aac \
    --disable-indevs \
    --disable-bsfs \
	--disable-devices \
    --disable-muxers \
    --disable-hwaccels \
    --disable-encoders

sleep 1;
make;make install;
exit;
發佈了58 篇原創文章 · 獲贊 46 · 訪問量 16萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章