最新ffmpeg編譯和用eclipse進行源碼調試

來源:互聯網
上載者:User

     最近由於項目需要,必須修改ffmpeg的源碼進行修改才能滿足項目的需求,但以前我從來沒有自己去編譯和使用ffmpeg的原始碼,一直都是用別人編譯好了的sdk,再加上習慣了vs方便的編譯環境,要在linux下對如此多的原始碼進行編譯和調試還真的是一件非常困難的事情。Linux下也沒別的什麼好的整合式開發環境好用,沒辦法eclipse還湊合吧。好了,廢話就不多說了,直接進入正題吧。 第一部分: ffmpeg的編譯

首先要下載最新的ffmpeg原始碼:

由於我用的是教育網,用svn下載太tm的慢了,1kb/s,估計到明年都下不完。推薦一個網站,除了有ffmpeg的原始碼以外還有各個源的源碼,並且用現成的sdk(windows下的)。

網址如下:

Step1: 網址

http://ffmpeg.zeranoe.com/builds/

Step2: 版本問題

下載完成以後,一個很重要的工作要做,否則以後你在使用或者調試ffmpeg的時候會出現很多莫名其妙的問題。一定要先檢查的清理你的linux下是否已經安裝了ffmpeg的庫檔案,如果安裝了,要先remove掉,否則到最近,你的庫有的是新的,有的是舊的,到用的時候給你報一堆版本錯誤,你就哭吧……具體做法:

下面是我在編譯的時候出現的版本錯誤:

ffmpeg: relocation error: ffmpeg: symbol postproc_configuration, version LIBPOSTPROC_51 not defined in file libpostproc.so.51 with link time reference

解決辦法:

$: apt-get remove ffmpeg

$: apt-get remove libavcodec52 libavdevice52 libavfilter0 libavformat52 libavutil49 libpostproc

$: apt-get remove libx264-dev

上面的解決辦法可能在不同的機子上不一樣,因為安裝的庫可能不同

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

庫檔案的路徑:/usr/lib

標頭檔的路徑:/usr/include

進入這些路徑看看是否有ffmpeg中的庫,如果有,都刪除掉。

Step3: 安裝ffmpeg所依賴的庫檔案:

$: sudo apt-get update

$: sudo apt-get install build-essential git-core checkinstall yasm texi2html libfaac-dev /

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

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

這個步驟中只提供最常用的配置所需要的庫檔案,如果在編譯ffmpeg中還有其它附加的配置,請使用新立得軟體管理器進行安裝。

Step4: 安裝x264

從Step1中的網址上下載x264源碼:

$:./configure –enable-static

$:make

$:make install

Step5: 安裝ffmpeg

注意:

1. 如果是安裝庫檔案,一定要使用--enable-shared, 不然不會產生.so檔案。

2. 預設的庫檔案目錄是/usr/local/lib,我們把它修改為/usr, 這樣在安裝的時候方便

$: ./configure --enable-gpl --enable-shared --enable-version3 --enable-nonfree --enable-postproc --enable-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab --prefix=/usr

$: make

$: sudo make install 第二部分:使用eclipse進行調試

Linux下也沒有什麼好用的整合式開發環境,就eclipse吧。

首先下載eclispe + cdt,這個網上用ubuntu的software center就可以。

這裡要注意一下,使用eclipse進行調試,如果ffmpeg源碼的編譯中使用了—enable-shared選項,那麼在調試時會出現無法step into的情況,這個問題折磨了我好久,後來才發現是.so檔案乾的事,唉……

重新設定:在ffmpeg源碼的目錄下輸入

$: ./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-libopencore-amrnb --enable-version3 --disable-optimizations --disable-asm

$: make

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

n 在Import Existing Code對話方塊中的Toolchain for Indexer Settings中選Linux GCC

然後點Browse找到原始碼檔案夾

然後點OK->Finish

可以看到建立的工程中已經包含了所有的源碼和編譯後的檔案。

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

好了,想怎麼調就怎麼調吧。

關於Eclipse的快速鍵:

使用vs用習慣了,eclipse調試時的快速鍵不太好用,想改。

window->Preference->general->keys->Scheme: Microsoft visual studio

但隨之而來的一個問題,F10!

這個鍵在vs裡面是step over, 但eclipse中只要你一按f10就會出出file對話方塊,後來上網查了一下,解決的辦法如下:

Eclipse F10 Key mapping bug

$: gconftool-2 --get /desktop/gnome/interface/menubar_accel

F10

$: gconftool-2 --type string --set /desktop/gnome/interface/menubar_accel "ctrl-shift-m"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.