編譯librtmp for Android

librtmp是一個強大的rtmp開源庫,近期的一個Android項目涉及rtmp之類的技術,之前用ffmepg的時候也用到過它,那時候只是作爲一個模塊將librtmp作爲第三方庫編到ffmpeg裏(ffmpeg本身也支持rtmp)。
將librtmp移植到Android上需要做的準備工作:
1. 準備好NDK並配置好環境變量
2. 當然事準備好librtmp的安裝包了

    git clone git://git.ffmpeg.org/rtmpdump

下邊一步是提出ndk的一些編譯工具,適用於android平臺下的編譯環境,比如arm-linux-androideabi-gcc等
/home/android-ndk-r10e/build/tools/make-standalone-toolchain.sh --toolchain=arm-linux-androideabi-4.8 --platform=android-14 --install-dir=/home/lide/work/lide/lide
設置環境變量

vim /etc/profile
export PATH=/home/lide/work/lide/lide/bin:$PATH
source /etc/profile

下載polarssl-1.2.14(mbed TLS (formerly known as PolarSSL))最好下載這個版本,不然下邊編譯librtmp的時候會報錯。https://tls.mbed.org/ 右下角 有Latest updates有這個版本
編譯前將include/polarssl/config.h中的 #define POLARSSL_HAVEGE_C的註釋去掉,否則編譯librtmp的時候會出現 undefined reference tohavege_random’`錯誤,這裏是因爲polarssl默認關閉了havege模塊。

make CC=arm-linux-androideabi-gcc APPS=
make install DESTDIR=/home/lide/work/lide/lide/sysroot

編譯(librtmp爲動態庫)

make SYS=android CROSS_COMPILE=arm-linux-androideabi- INC="-I/home/lide/work/lide/lide/sysroot/include" CRYPTO=POLARSSL

如果想使用librtmp的靜態庫,使用

make SYS=android CROSS_COMPILE=arm-linux-androideabi- INC="-I/home/lide/work/lide/lide/sysroot/include" CRYPTO=POLARSSL SHARED=

至此,已經得到librtmp的android版本庫了,接下來就可以拿來在android下做開發了。下一節先介紹一下android的jni使用,開始android的C之旅嘍~~~~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章