最新ffmpeg编译和用eclipse进行源码调试
第一部分: ffmpeg的編譯
首先要下載最新的ffmpeg源代碼:
由于我用的是教育網(wǎng),用svn下載太tm的慢了,1kb/s,估計(jì)到明年都下不完。推薦一個(gè)網(wǎng)站,除了有ffmpeg的源代碼以外還有各個(gè)源的源碼,并且用現(xiàn)成的sdk(windows下的)。
網(wǎng)址如下:
Step1: 網(wǎng)址
http://ffmpeg.zeranoe.com/builds/
Step2: 版本問題
下載完成以后,一個(gè)很重要的工作要做,否則以后你在使用或者調(diào)試ffmpeg的時(shí)候會(huì)出現(xiàn)很多莫名其妙的問題。一定要先檢查的清理你的linux下是否已經(jīng)安裝了ffmpeg的庫(kù)文件,如果安裝了,要先remove掉,否則到最近,你的庫(kù)有的是新的,有的是舊的,到用的時(shí)候給你報(bào)一堆版本錯(cuò)誤,你就哭吧……具體做法:
下面是我在編譯的時(shí)候出現(xiàn)的版本錯(cuò)誤:
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
上面的解決辦法可能在不同的機(jī)子上不一樣,因?yàn)榘惭b的庫(kù)可能不同
如果還不行,就手動(dòng)解決:
庫(kù)文件的路徑:/usr/lib
頭文件的路徑:/usr/include
進(jìn)入這些路徑看看是否有ffmpeg中的庫(kù),如果有,都刪除掉。
Step3: 安裝ffmpeg所依賴的庫(kù)文件:
$: 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
這個(gè)步驟中只提供最常用的配置所需要的庫(kù)文件,如果在編譯ffmpeg中還有其它附加的配置,請(qǐng)使用新立得軟件管理器進(jìn)行安裝。
Step4: 安裝x264
從Step1中的網(wǎng)址上下載x264源碼:
$:./configure –enable-static
$:make
$:make install
Step5: 安裝ffmpeg
注意:
1. 如果是安裝庫(kù)文件,一定要使用--enable-shared, 不然不會(huì)生成.so文件。
2. 默認(rèn)的庫(kù)文件目錄是/usr/local/lib,我們把它修改為/usr, 這樣在安裝的時(shí)候方便
$: ./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進(jìn)行調(diào)試
Linux下也沒有什么好用的集成開發(fā)環(huán)境,就eclipse吧。
首先下載eclispe + cdt,這個(gè)網(wǎng)上用ubuntu的software center就可以。
這里要注意一下,使用eclipse進(jìn)行調(diào)試,如果ffmpeg源碼的編譯中使用了—enable-shared選項(xiàng),那么在調(diào)試時(shí)會(huì)出現(xiàn)無法step into的情況,這個(gè)問題折磨了我好久,后來才發(fā)現(xiàn)是.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
建立項(xiàng)目工程,這里我們選File->new->Makefile Project with Existing Code
n 在Import Existing Code對(duì)話框中的Toolchain for Indexer Settings中選Linux GCC
然后點(diǎn)Browse找到源代碼文件夾
然后點(diǎn)OK->Finish
可以看到新建的工程中已經(jīng)包含了所有的源碼和編譯后的文件。
右鍵點(diǎn)擊ffmpeg_g選debug as->Local c/c++ Application->gdb/mi 然后Ok
好了,想怎么調(diào)就怎么調(diào)吧。
關(guān)于Eclipse的快捷鍵:
使用vs用習(xí)慣了,eclipse調(diào)試時(shí)的快捷鍵不太好用,想改。
window->Preference->general->keys->Scheme: Microsoft visual studio
但隨之而來的一個(gè)問題,F10!
這個(gè)鍵在vs里面是step over, 但eclipse中只要你一按f10就會(huì)出出file對(duì)話框,后來上網(wǎng)查了一下,解決的辦法如下:
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"
總結(jié)
以上是生活随笔為你收集整理的最新ffmpeg编译和用eclipse进行源码调试的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: H.264/AVC视频压缩编码标准的新进
- 下一篇: MFC的来龙去脉-----消息处理,找处