CentOS下OpenCV無法讀取視頻文件如何解決?

在CentOS下,按照教程的步驟安裝OpenCV,但到最后無法讀取視頻文件,原因是缺少了ffmpeg。于是通過CentOS中的軟件管理安裝ffmqeg,但還是沒有效果。然后對(duì)ffmpeg進(jìn)行編譯,還是沒有效果。其實(shí)漏了一個(gè)關(guān)鍵步驟,就是將ffmpeg于OpenCV關(guān)聯(lián)起來。具體如下:
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估計(jì)都知道意思,但是為什么要 prefix=/usr呢,這得從opencv的CMakeLists.txt和heighgui下的cvcap_ffmpeg.cpp說起了,這里涉及到的問題不要使路徑問題,但是也就是這個(gè)問題,搞得我去了一個(gè)早上。cMakeLists.txt中關(guān)于檢測(cè)是否有安裝ffmpeg時(shí),默認(rèn)是到/usr 下去檢測(cè)相應(yīng)的頭文件之類的是否存在的,但是ffmpeg的默認(rèn)安裝是安裝在/usr/local下的,問題就來了,所以改一下安裝路徑opencv在 cmake .時(shí)就無法檢測(cè)到你是否已經(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; //之所以這么做,是因?yàn)閛pencv configure時(shí)檢查是否已安裝ffmpeg是在這
檢查的
4.2)cmake .; //注意,cmake 和.之間有空格, 如果以上步驟都沒錯(cuò)的話,一概可以看到 opencv的
configure結(jié)果中ffmpeg為1,不是之前的0,說明我們成功了。
4.3)make install;
5、將/usr/local/lib/pkgconfig下的opencv.pc cp到/usr/lib/pkgconfig下,這一步也可以做,只是一個(gè)配置文件,大不了編譯時(shí)自己指定頭文件和庫么,其實(shí)你打開opencv.pc一看就知道是什么玩意了。
6、root下, vim /etc/ld.so.conf, 增加一行, /usr/local/lib (因?yàn)閛pencv的庫文件在local,默認(rèn)情況下local/lib中的庫文件是不在系統(tǒng)啟動(dòng)時(shí)被load的)
7、ldconfig。
相關(guān)文章
- 使用最小化安裝CentOS后,無法使用Tab鍵補(bǔ)全命令,這里就為大家分享一下解決方法,需要的朋友可以參考下2018-05-25
- 這篇文章主要介紹了centos 強(qiáng)制踢掉某登錄用戶的方法,需要的朋友可以參考下2018-05-05
CentOS 7.3.1611 系統(tǒng)安裝配置圖文教程
這篇文章主要介紹了CentOS 7.3.1611 系統(tǒng)安裝配置圖文教程,需要的朋友可以參考下2018-01-28- CentOS7.0怎么設(shè)置屏幕分辨率?CentOS7.0中想要設(shè)置電腦的分辨率,該怎么設(shè)置呢?下面我們就來看看CentOS7.0中設(shè)置分辨率的教程,需要的朋友可以參考下2017-11-08
- centos7怎么關(guān)閉ipv6僅使用ipv4?centos7系統(tǒng)中使用ipv6很不方便,想要關(guān)閉,該怎么關(guān)閉呢?下面我們就來看看詳細(xì)的教程,需要的朋友可以參考下2017-10-30
CentOS部署kodexplorer可道云搭建私有網(wǎng)盤的方法
這篇文章主要介紹了CentOS部署kodexplorer可道云搭建私有網(wǎng)盤的方法的相關(guān)資料,需要的朋友可以參考下2017-08-30- 最近一些朋友問小編如何進(jìn)入CentOS字符界面及窗口模式?下面小編就為大家分享進(jìn)入CentOS字符界面及窗口模式的方法,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-04-16
CentOS 6.X如何更改網(wǎng)卡名稱?CentOS 6.X更改網(wǎng)卡名稱的方法
最近一些朋友問小編CentOS 6.X如何更改網(wǎng)卡名稱?今天小編為大家?guī)淼氖荂entOS 6.X更改網(wǎng)卡名稱的方法,希望對(duì)大家會(huì)有幫助,有需要的朋友一起去看看吧2017-04-10CentOS7中無法找到pci find device函數(shù)的解決方法
這篇文章介紹了CentOS7中無法找到pci_find_device函數(shù)的解決方法,希望對(duì)大家會(huì)有幫助,下面就隨小編一起去看看具體的操作吧2017-04-09- CentOS是一款基于Linux的操作系統(tǒng),而在CentOS操作系統(tǒng)中CrossOver的安裝包是bin格式的,這對(duì)于部分用戶來講估計(jì)就有點(diǎn)蒙圈了。下面,小編就為大家介紹一下在CentOS系統(tǒng)中2015-11-24