日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ffmpeg for android shared library

發(fā)布時間:2023/12/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ffmpeg for android shared library 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

ffmpeg for android shared library

This comes from my github README

移植ffmpeg到android,編譯可用于jni調(diào)用的so庫.

編譯出的so在android apk中的使用參考我的另一個項目ffmpeg-jni-sample

環(huán)境

ubuntu ubuntu15.10_64

ffmpeg 2.6.2

獲取代碼

git clone https://github.com/tainzhi/ffmpeg-for-android-shared-library

使用

Step 1

安裝android linux SDK以及NDK,并配置環(huán)境變量;

我的是通過Android SDK manager下載, 默認安裝在~/Android/Sdk/ndk-build

從ffmpeg官網(wǎng)下載ffmpeg源碼包;也可以直接使用我本項目中的ffmpeg源碼,我所使用的是2.6.2版本

如果要使用自己下載的ffmpeg源碼,需要先將source/ffmpeg下的所有內(nèi)容刪除,然后將自己所下載的源碼包解壓到ffmpeg目錄下

Step 2

本項目提供了分別編譯arm平臺庫和x86庫和arm64平臺的sh文件,分別為

  • source/build_android_arm.sh

  • source/build_android_x86.sh

  • source/build_android_aarch64.sh

下面以build_android_arm.sh為例進行說明:

將source/build_android_arm.sh復(fù)制到ffmpeg目錄下

1.指定臨時目錄
export TMPDIR=/tmp

指定一個臨時目錄,可以是任何路徑,但必須保證存在,ffmpeg編譯要用;

2.指定NDK路徑
NDK=~/Android/Sdk/ndk-build
3.指定使用NDK Platform版本
SYSROOT=$NDK/platforms/android-21/arch-arm/

這里指定的ndk platform的路徑,一定要選擇比你的目標機器使用的版本低的,比如你的手機是android-21版本,那么就選擇低于21的

4.指定編譯工具鏈
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
5.指定編譯后的安裝目錄
CPU=arm PREFIX=$(pwd)/android/$CPU

顯然,生成的文件在source/ffmpeg/android/arm/目錄下

這個目錄是ffmpeg編譯后的so的輸出目錄,會有一個include和lib文件夾生成在這里,這也是我們之后要在android apk中使用的.

  • source/ffmpeg/android/arm/lib/目錄下是動態(tài)庫文件.so

  • source/ffmpeg/android/arm/include/目錄下的是頭文件,不僅需要動態(tài)庫,還需要頭文件

build_android_arm.sh參數(shù)配置

--enable-shared和--disable-static生成動態(tài)庫

--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi-是一些跨平臺變異所需要的文件,不同的平臺是不一樣的

--target-os=android指定適配android平臺,我之前fork的原庫是linux,如果是linux,那么生成的庫名中有版本號,還需要重命名指定android后就不需要了

make -j8多線程加速編譯

具體查看ffmpeg文檔.

Step 3

cp source/build_android_arm.sh source/ffmpeg/ cd source/ffmpeg ./build_andrioid_arm.sh

Step 4編譯出現(xiàn)錯誤

如果編譯過程中出現(xiàn)錯誤,錯誤信息會輸出在source/ffmpeg/config.log文件中,一般在文件末尾.仔細分析該文件,可以找到編譯出錯的原因

Step 5

等待編譯完成后,在source/android/arm/目錄下分別有動態(tài)庫lib和頭文件include.

Step6 重新configure&&compile

修改了build_android_arm.sh文件,發(fā)現(xiàn)參數(shù)沒有起作用,原來沒有清除之前configure生成的文件.這個命令,值得擁有

make distclean #delete files created by configure #then . ./build_android_arm.sh

Reference & Thanks

  • ffmpeg-for-android

總結(jié)

以上是生活随笔為你收集整理的ffmpeg for android shared library的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。