ubuntu下編譯ffmpeg並用eclipse調試

來源:互聯網
上載者:User

標籤:

一、下載ffnpeg源碼

:http://ffmpeg.org/download.html

二、解決版本問題

可能之前你編譯過ffmpeg,或者裝過相關的庫,那都要先卸載掉,否則用的時候會報一堆版本的錯誤。

卸載的具體做法:

sudo apt-get remove ffmpeg

sudo apt-get remove libavcodec52 libavdevice52 libavfilter0 libavformat52 libavutil49 libpostproc

sudo apt-get isntall remove libx264-dev

如果這樣還不行,那就手動解決:

庫檔案路徑:/usr/lib

標頭檔路徑:/usr/include

進入這些路徑看看是否有ffmpeg中的庫,如果有就全部刪除掉;

備忘:有時候庫也會安裝在:/use/local下。

三、安裝ffmpeg依賴庫

sudo apt-get update

sudo apt-get install build-essential git-core checkinstall texi2html libfaac-dev

libopencore-amrnb-dev libopencore-amrwb-dev libsdl1.2-dev libtheora-dev libvorbis-dev

libx11-dev libxfixes-dev libxvidcore-dev zlib1g-dev

四、安裝yasm依賴庫

為什麼單獨說這個依賴庫呢,是因為linux本身有這個庫,但是編譯ffmpeg的時候提示這個庫版本太低,至少要1.0以上的版本,用命令查看:yasm --version,發現linux內建的版本只有0.8,所以就需要我們重新安裝各個庫:

1、從網上:http://yasm.tortall.net/Download.html下載yasm;

2、解壓後進入yasm目錄;

3、./configure

4、make

5、sudo make install

五、安裝lame庫

這個一個支援mp3編碼的庫檔案。

1、網上:http://lame.sourceforge.net/download.php,下載lame源檔案;

2、解壓後進入到lame目錄;

3、./configure

4、make

5、sudo make install

六、安裝X264庫

1、網上:http://www.videolan.org/developers/x264.html,下載x264源檔案;

2、解壓後進入到x264目錄;

3、./configure --enable-static

4、make

5、sudo make install

七、編譯ffmpeg

至此大部分所需要的庫已經安裝完畢,如果有需要還可以再添加所需要的庫。

1、進入到ffmpeg目錄;

2、./configure --enable-gpl --enable-nonfree --enable-pthreads --enable-libfaac

--enable-libmp3lame --enable-libtheora --enable-libx264 --enable-libxvid --enable-x11grab

--enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --disable-optimizations

--disable-asm

3、make

4、sudo make install

八、把ffmpeg項目匯入eclipse下進行調試

1、建立項目工程,這裡我們選File->new->Makefile Project with Existing Code;

2、在Import Existing Code對話方塊中的Toolchain for Indexer Settings中選Linux GCC,然後點Browse找到原始碼檔案夾進行源碼匯入,然後點OK->Finish,這時可以看到建立的工程中已經包含了所有的源碼和編譯後的檔案;

3、右鍵點擊ffmpeg_g選debug as->Local c/c++ Application->gdb/mi 然後Ok;

4、然後進行調試即可;

九、匯入檔案編譯時間的錯誤

匯入檔案到eclipse後進行編譯,發現會報一堆如下宏定義的錯誤。

1、Description Resource Path Location Type Symbol ‘CODEC_CAP_EXPERIMENTAL‘ could not be resolved utils.c /ffmpeg-0.8.9/libavcodec

錯誤分析:

經過仔細看原始碼,跟蹤到錯誤處,發現是標頭檔包含的問題。

很多的標頭檔是在檔案夾中:如avcodec.h就在libavcodec檔案夾中,但在標頭檔包含中沒有給具體路徑,所以就導致標頭檔沒有包含進去,自然編譯就會出錯。

解決方案:

定位到錯誤發生的地方,查看標頭檔是否包含正確,給出正確的路徑。如#include"libavcodec\avcodec.h"

2、在allcodecs.c檔案中的錯誤最難找,發現報了幾百個錯誤,通過游標放到錯誤處,有如下錯誤‘ONFIG_VC1_DXVA2_HWACCEL‘could not be resolved。

把該錯誤寫在檔案中,通過右鍵open declaration 找到該字串的定義檔案,發現是在config.h檔案中,而allocodecs.c又沒有包含這個標頭檔,自然會報一大堆的錯誤,

所以把config.h包含到allcodecs.h檔案中即可。

本文參考:http://www.linuxidc.com/Linux/2011-05/36286p2.htm

ubuntu下編譯ffmpeg並用eclipse調試

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.