想要通過opencv播放一些視頻文件,比如avi,、mpeg等之類的,,少了ffmpeg自然是不行的了。 今天我就遇到了這個問題,,視頻無法播放,,沒辦法,搞個ffmpeg吧……但是,,一早上,就搭進(jìn)去了,! 記一下,,就當(dāng)筆記了(opencv版本:2.1.0):
1、獲得ffmpeg: 通過cvs下載ffmpeg, 命令行輸入: svn checkout svn://svn.ffmpeg.org/ffmpeg/trunk ffmpeg
2,、配置ffmpeg: 進(jìn)入ffmpeg目錄,,執(zhí)行 ./configure --enable-shared --prefix=/usr (enabled-shared估計都知道意思,但是為什么要 prefix=/usr呢,,這得從opencv的CMakeLists.txt和heighgui下的cvcap_ffmpeg.cpp說起了,,這里涉及到的問題不要使路徑問題,但是也就是這個問題,,搞得我去了一個早上,。cMakeLists.txt中關(guān)于檢測是否有安裝ffmpeg時,默認(rèn)是到/usr下去檢測相應(yīng)的頭文件之類的是否存在的,,但是ffmpeg的默認(rèn)安裝是安裝在/usr/local下的,,問題就來了,所以改一下安裝路徑opencv在cmake .時就無法檢測到你是否已經(jīng)安裝了ffmpeg),;
3,、make;su -c "make install";
4,、接下來要做的工作就是關(guān)系到opencv能否成功將ffmpeg的相關(guān)頭文件編譯進(jìn)來的問題了: 4.1),、首先在/usr/include下執(zhí)行以下命令(root): mkdir ffmpeg; cp libav* libsw* ffmpeg; //之所以這么做,是因為opencv configure時檢查是否已安裝
ffmpeg是在這檢查的 4.2),、cmake .; //注意,,cmake 和.之間有空格, 如果以上步驟都沒錯的話,一概可以看到 opencv的 configure結(jié)果中ffmpeg為1,,不是之前的0,,說明我們成功了,。 4.3)、make install,;
5,、將/usr/local/lib/pkgconfig下的opencv.pc cp到/usr/lib/pkgconfig下,這一步也可以做,,只是一個配置文件,,大不了編譯時自己指定頭文件和庫么,其實你打開opencv.pc一看就知道是什么玩意了,。
6,、root下, vim /etc/ld.so.conf, 增加一行,, /usr/local/lib (因為opencv的庫文件在local,默認(rèn)情況下local/lib中的庫文件是不在系統(tǒng)啟動時被load的)
7,、ldconfig;
現(xiàn)在可以寫個qt程序看毛片了?。,。?br>
|