• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Dragon  
            Dragon
            日歷
            <2008年10月>
            2829301234
            567891011
            12131415161718
            19202122232425
            2627282930311
            2345678
            統(tǒng)計
            • 隨筆 - 58
            • 文章 - 0
            • 評論 - 55
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿(3)

            隨筆分類(58)

            隨筆檔案(58)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             
             

            就以網(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.aviadb 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)試不了。
            posted on 2010-10-22 18:13 Dragon 閱讀(8015) 評論(17)  編輯 收藏 引用 所屬分類: FFMPEG
            評論:
            • # re: NDK使用FFMPEG寫的Android測試程序  小莫 Posted @ 2010-12-14 22:00
              對于:"(4) so文件夾,里面放好了編譯好的lib*.so文件"
              請問 lib*.so文件哪里來的?

                回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序[未登錄]  Dragon Posted @ 2010-12-15 19:49
              @小莫
              編譯FFMPEG的  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  小莫 Posted @ 2010-12-18 18:49
              是用Android的ndk編譯的吧?
              求過程!  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  小莫 Posted @ 2010-12-18 19:32
              Hi,首先謝謝的的回復(fù),謝謝 。
              我對你使用Android NDK r4b編譯ffmpeg生成lib*.so的過程非常感興趣,非常崇拜啊!下面有幾個問題請教一下:
              1 你使用的ffmeg的版本,0.4.8?跟你前面《FFMPEG解碼流程》提到的一樣?
              2 各個模塊的“Android.mk”編寫過程,關(guān)鍵點,分別編譯還是同時編譯?
              3 編譯ffmpeg生成lib*.so的項目能給我發(fā)一份嗎?如果可以,我將萬分感謝,同時我會在項目加上對Android UI的現(xiàn)實控制,并返給你;如果不可以我只有慢慢學習,慢慢來請教你(530225731@qq.com)。
              4 有沒有辦法把 ib*.so加入到Test.os最后只有一個文件,應(yīng)該用NDK連接編譯?
              5 最好能給我一個你的email地址。謝謝,感謝。

              ps: 以上全部出于個人興趣的研究.
              小莫
                回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  Dragon Posted @ 2010-12-19 09:05
              在我的CSDN上的編譯FFMPEG的教程里,是生成libffmpeg.so失敗的,把各個模塊都生成靜態(tài)庫,將ffmpeg目錄下的Android.mk文件里的LOCAL_STATIC_LIBRARIES改成LOCAL_WHOLE_STATIC_LIBRARIES
              還要按照這文章修改build-binary.mk文件
              http://www.cnblogs.com/scottwong/archive/2010/12/17/1909455.html
              就可以生成一個SO文件了  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  xdiyer Posted @ 2011-02-23 09:16
              "運行Android虛擬機" 是指運行Android模擬器嗎?
              我在“把Test文件adb push 到 /system/bin/” 的時候出現(xiàn)失敗。提示是 /system/bin/ 是只讀的。樓主是怎么做的?  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序[未登錄]  Dragon Posted @ 2011-02-24 17:37
              @xdiyer
              是指Android模擬器.
              下面那個問題我忘記我有沒有遇到過了,好像沒有~~
              你自己百度一下吧~~
                回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  宏宇 Posted @ 2011-03-10 14:44
              xdiye:
              用adb remount 命令解決只讀問題  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  he Posted @ 2011-04-28 15:03
              樓主,有個問題想請教下: 為什么要把.so文件push到system/lib下呢?那在真機上運行呢?  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  jichre Posted @ 2011-05-06 11:15
              我想問一下。。運行一下test之后產(chǎn)生了很多信息。。怎么知道是成功了。。。  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  Dragon Posted @ 2011-05-15 22:51
              里面會生成一些圖片的,PPM格式 ,如果有就是成功了。  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  zhx Posted @ 2011-06-05 18:21
              你好!在哪個文件下可以看到生成的ppm格式的圖片呢?
                回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序[未登錄]  Dragon Posted @ 2011-06-09 00:16
              @zhx
              就在/system/bin/文件夾下
              你可以輸入ls回車查看,然后用命令將文件下載到電腦中查看圖片  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  小豪 Posted @ 2012-03-02 11:49
              hi 博主 你的那個main.c的代碼 不要用jni規(guī)則修改下嗎?能否講下這個int main(int argc, char *argv[])用jni規(guī)則怎么處理的嗎  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序[未登錄]  Dragon Posted @ 2012-03-05 16:08
              @小豪
              這個不需要JNI規(guī)則的,是純C的,就好像你在Linux用C寫控制臺程序一樣.  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序  小豪 Posted @ 2012-03-06 14:12
              @Dragon
              謝謝博主的回復(fù)~,這個不需要jni規(guī)則,這個純C的代碼在android上怎么能用呢?java中不需要調(diào)用這個代碼中的任何函數(shù)?那么jni 的native方法修改的是哪里的?這塊的代碼 能否讓看看呢 或者有木有這個的博客呢?  回復(fù)  更多評論   

            • # re: NDK使用FFMPEG寫的Android測試程序[未登錄]  Dragon Posted @ 2012-03-06 22:11
              @小豪
              你android是基于Linux的,可以執(zhí)行純C程序,不一定要用JAVA,而你們學
              JAVA的只負責調(diào)用底層用C/C++寫的JNI,而這個JNI的代碼就要遵守JNI規(guī)則了,例如下面的純C代碼用NDK編譯成執(zhí)行程序后就可以adb push到android里用命令行執(zhí)行了:

              #include <stdio.h>

              int main()
              {
              printf("Hello world!\n");
              return 0;
              }  回復(fù)  更多評論   

             
            Copyright © Dragon Powered by: 博客園 模板提供:滬江博客
            日韩精品久久无码中文字幕| 久久国产精品99久久久久久老狼| 无码任你躁久久久久久久| 久久婷婷是五月综合色狠狠| 欧美亚洲色综久久精品国产| A级毛片无码久久精品免费| 欧美成人免费观看久久| 丁香五月综合久久激情| 国内精品伊人久久久久777| 国产精品欧美久久久久无广告| 中文字幕久久亚洲一区| 99久久综合狠狠综合久久| 久久精品国产免费观看| 久久嫩草影院免费看夜色| 久久精品国产亚洲欧美| 日产精品久久久一区二区| 欧美日韩成人精品久久久免费看| 人妻精品久久久久中文字幕69| 久久久久免费视频| 草草久久久无码国产专区| 精品久久久久久无码专区| 色老头网站久久网| 久久成人永久免费播放| 久久香蕉国产线看观看99| 久久夜色精品国产噜噜麻豆 | 久久久噜噜噜久久中文福利| 欧美日韩精品久久久久| 精品乱码久久久久久夜夜嗨| 国产精品久久成人影院| www久久久天天com| 久久国产精品99精品国产| 人妻精品久久久久中文字幕一冢本| 亚洲人成电影网站久久| 久久精品国产72国产精福利| 中文字幕亚洲综合久久2| avtt天堂网久久精品| 国产精品久久成人影院| 国内精品伊人久久久久| 国内精品久久久久久野外| 91精品国产91久久久久久青草| 久久777国产线看观看精品|