2011-05-09 43 views
6

我有一個關於Android和ffmpeg的非常基本的問題。我從http://bambuser.com/opensource獲得了ffmpeg,並且能夠爲ARM編譯它。我如何在Android上實際使用ffmpeg?

結果是二進制文件(ffmpeg)以及幾個libsomething.so文件。

我的問題是:這是否足以視頻解碼?那我該如何真正使用ffmpeg?

要加載我有庫:

static { 
    System.load("/data/data/com.package/lib/libavcodec.so"); 
} 

它加載的罰款。但是呢?

更多解釋:我看到其他項目的人在他們的項目中的JNI目錄中有他們的ffmpeg源代碼。他們還創建了一些Android.mk文件和一些C代碼。我還需要這個嗎?爲什麼我會先創建.so文件,然後再次複製ffmpeg源代碼?

我知道NDK,它應該如何工作,但我從來沒有見過人們如何將使用它實際調用的ffmpeg功能的例子,因爲人們似乎隱藏自己的實現(這是有點理解),但甚至沒有提供有用的指針或示例。

這麼說吧,我想解碼的視頻文件。我需要實現哪種本地方法?我如何運行該項目?哪些數據類型需要傳遞?等等。這裏肯定有少數人至少這樣做了,我通過搜索幾小時和幾小時就知道這一點。

+0

你是怎麼從編譯鏈接http://bambuser.com/opensource – 2011-09-19 10:07:15

+0

下載@Swathi這是不是太難做的ffmpeg。只需按照「INSTALL」文件中該文件夾內的說明進行操作即可。 – slhck 2011-09-19 10:08:44

+0

感謝您的快速回復:)我正在下載它,我會按照其中的說明。我在Windows上工作,是否需要其他配置? – 2011-09-19 10:13:13

回答

6

關於第一個問題;

只是建築是不夠的正確使用的ffmpeg庫。您還應該按照正確的順序包裝這些文件。因爲這些文件在連接的時候NEDED其他庫。您可以通過使用顯示此文件的標題信息。

objdump -x libavcodec.so | grep NEEDED 

所以你需要通過Android.mk包裝這些文件。你可以檢查這個link

第二個;

你只從FFmpeg的項目所需要的頭文件。實施將從所有圖書館鏈接。這可能是因爲,開發人員並沒有打擾過濾頭文件。

而最後一個;

你的想法似乎是正確的暫時,目前大部分開發商都在努力使用的ffmpeg,但他們缺乏的文檔和示例代碼。

+0

感謝您的信息...我建立我的ffmpeg庫,我有這樣的文件..我想開發應用程序壓縮視頻文件的大小。;那麼我應該怎麼做..i是什麼方法可用於在ffmpeg中壓縮視頻,你能幫助我嗎? – 2013-08-28 15:40:10

+0

@ Swap-IOS-Android我面臨同樣的問題,你有什麼解決方案嗎? – 2013-12-26 19:10:09

+0

@ParagChauhan不,我使用javac庫而不是ffmpeg來轉換我的視頻 – 2013-12-27 02:30:20