就以網(wǎng)上的那個《FFMPEG解碼流程》中的例子來講吧!
環(huán)境說明:在Windows下安裝了Cygwin1.7.6版本。
我的NDK安裝目錄是:c:\cygwin\home\Dragon\Android\android-ndk-r4b
在Cygwin設(shè)置了環(huán)境變量:
NDK_ROOT=~/Android/android-ndk-r4b
export NDK_ROOT
1. 在c:\cygwin\home\Dragon\Android\android-ndk-r4b\samples\創(chuàng)建一個文件夾,命名為Test
在里面再創(chuàng)建一個文件夾jni,在jni我們必須有這四個:
(1) 源碼:main.c
(2) Ffmpeg0.6源碼,文件名ffmpeg
(3) Android.mk
(4) so文件夾,里面放好了編譯好的lib*.so文件
除了FFMPEG源碼,這些文件我已經(jīng)放到CSDN下載了。下載地址:
http://download.csdn.net/source/2776066
2.然后啟動cygwin:
$ cd $NDK_ROOT
$ ndk-build NDK_PROJECT_PATH=$NDK_ROOT/samples/Test
就會產(chǎn)生一個在Test\libs\armeabi\Test
運行Android虛擬機,我的是2.2版本。
把所有用到的SO文件adb push 到/system/lib/
把Test文件adb push 到 /system/bin/
把要測試的文件clock.avi也adb push 到/system/bin/
adb shell 進入到Android虛擬機。
# cd /system/bin/
# chmod 777 Test
# Test clock.avi
只要我們修改.c文件和Android.mk文件我們就可以編寫jni 的native方法生成SO文件給JAVA調(diào)用,當你調(diào)試時如果你的JAVA程序調(diào)用SO文件時一定要把ffmpeg里用到的SO文件上傳到/system/lib/不然調(diào)試不了。