閱讀682 返回首頁    go 阿裏雲 go 技術社區[雲棲]


在32位的Ubuntu 11.04中為Android NDK r6編譯FFmpeg0.8.1版-Android中使用FFmpeg媒體庫(一)

原文:https://doandroid.info/?p=465

最近想通過FFmpeg庫來練習在Android中使用其他第三方庫進行開發。本文基本按照Ubuntu 10.10 64bit下使用Android NDK r6編譯FFmpeg 0.8.1實現,感謝原作者辛苦的工作。

1 下載相應的Android NDK r6文件
2 下載FFmpeg0.8.1的版本
截至到2011年10月2日已經發布了FFmpeg 0.8.5版本。

本文中係統之前已經配置過了NDK r6,我們通過控製台使用ndk-build不會出現找不到命令的情況。
本文的相關路徑如下。

NDK目錄為 /root/develop/android-ndk-r6
FFmpeg目錄為 /root/develop/workspace/jni

3 創建一個可執行腳本:

./configure  --disable-static --enable-shared --enable-gpl --enable-version3 --enable-nonfree --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avdevice --disable-avfilter --disable-postproc --enable-small --cross-prefix=/root/develop/android-ndk-r6/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi- --enable-cross-compile --target-os=linux --extra-cflags='-I/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/include' --extra-ldflags='-L/root/develop/android-ndk-r6/platforms/android-9/arch-arm/usr/lib -nostdlib' --arch=arm --disable-symver --disable-debug --disable-stripping
 
sed -i 's/HAVE_LRINT 0/HAVE_LRINT 1/g' config.h
 
sed -i 's/HAVE_LRINTF 0/HAVE_LRINTF 1/g' config.h
 
sed -i 's/HAVE_ROUND 0/HAVE_ROUND 1/g' config.h
 
sed -i 's/HAVE_ROUNDF 0/HAVE_ROUNDF 1/g' config.h
 
sed -i 's/HAVE_TRUNC 0/HAVE_TRUNC 1/g' config.h
 
sed -i 's/HAVE_TRUNCF 0/HAVE_TRUNCF 1/g' config.h
文件下載:
config.sh

本文為放到/root/develop/workspace/jni目錄
4 使用命令

chmod 777 ./config.sh
./config.sh

5 創建一個Android.mk文件,放在 /root/develop/workspace/jni目錄
內容參考Android.mk
本文使用的文件為
Android.mk

6 在/root/develop/workspace/jni目錄下,執行

ndk-build

7 本文中會在/root/develop/workspace/libs/armeabi/中生成一個libffmpeg.so文件。

注意:
本人在做這個操作的時候,參考過How to Build FFmpeg for Android,但是並不成功。當然他提到的Android NDK r5 我沒有測試過。


參考文章:
1 https://www.cnblogs.com/mcodec/articles/2114674.html
2 https://www.cnblogs.com/mcodec/articles/2114714.html
3 https://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html
4 https://blog.csdn.net/fsfcvictor/article/details/5972044
5 https://gist.github.com/1126971
6 https://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.html
7 https://www.roman10.net/?p=389

主參考

https://www.cnblogs.com/shaobin0604/archive/2011/08/05/2128619.html



最後更新:2017-04-02 06:51:59

  上一篇:go 使用mingw編譯SDL工程時出現WinMain@16錯誤
  下一篇:go Java基礎小技巧回顧--淺析String