一、無法讀取文件
報錯:
OpenCV報錯:
warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)
capture device failed to open!
(1)可以是讀取的文件目錄存在問題,找不到相應(yīng)的視頻文件,導(dǎo)致返回NULL;
(2)讀取的視頻文件存在問題,不是真正的視頻文件;
(3)缺失解碼
由于我是從臺式機上copy過來的項目,前兩總情況基本不成立;由于系統(tǒng)的差異,我還是測試了路徑中使用‘/’ 或者'\\'、間接路徑改為直接路徑等,但是任然沒有解決。
2、解決方法
通過一系列的測試,我最終鎖定問題3,于是檢索相關(guān)問題解決方案。
(1)部分解決方法 下載xvid并安裝,https://www.xvid.com/download/ 。
(2)另一種說法是下載K-Lite_Codec_Pack 軟件安裝,里面包含了需要的解碼接口。
然而,這兩種方法都沒有解決我存在的問題,最初我還以為是設(shè)置除了問題,是不是環(huán)境變量設(shè)置不對,安裝以上的軟件是不需要配置,但總覺得挺麻煩,于是冷靜下來,從頭在思考。總覺得opencv設(shè)計不應(yīng)該存在這么強依賴性的缺陷,于是我想到是不是缺少組件。因為編譯通過,程序可以運行,我就認(rèn)為配置上不會存在問題,但還是看了看相關(guān)dll。
(3)缺少opencv_ffmpeg2410.dll,將opencv_ffmpeg2410.dll加入到項目根文件夾下或者debug中。
三、dll文件配置
我們在使用vs進(jìn)行開發(fā)調(diào)試的時候經(jīng)常會遇到一個問題,就是當(dāng)我們的主工程引用到其他工程更新的dll(我們經(jīng)常采用copy到工程目錄的方法)、亦或者當(dāng)我們的多個工程引用到同一個dll文件的時候,我們怎么來配置:
1、將dll配置到環(huán)境變量:
這種方法當(dāng)然是可行的,只不過當(dāng)我們的工程位置發(fā)生變化,環(huán)境變量就需要重新配置,而且為了單個小工程就去改變環(huán)境變量顯得小題大做,不過也是一種方法;
2、工程的本地化配置:
通過設(shè)置vs工程的環(huán)境變量,實現(xiàn)對單個工程本地化配置的目標(biāo),環(huán)境變量可隨整個工程遷移,設(shè)置方法:vs工程屬性-->配置屬性-->調(diào)試-->環(huán)境,例如,我們要引用../../bin/目錄里面的dll,那么我們可以設(shè)置為:path=%path%;..\..\bin,如圖:
“Win32Project3.exe”(Win32): 已加載“D:\software\VS2013\VS2013 文檔\Win32Project3\Debug\Win32Project3.exe”。已加載符號。 “Win32Project3.exe”(Win32): 已加載“C:\Windows\SysWOW64\ntdll.dll”。無法查找或打開 PDB 文件。 “Win32Project3.exe”(Win32): 已加載“C:\Windows\SysWOW64\kernel32.dll”。已加載符號。 “Win32Project3.exe”(Win32): 已加載“C:\Windows\SysWOW64\KernelBase.dll”。無法查找或打開 PDB 文件。 “Win32Project3.exe”(Win32): 已加載“C:\Windows\SysWOW64\msvcr120d.dll”。已加載符號。 程序“[4308] Win32Project3.exe”已退出,返回值為 0 (0x0)。
1、點 調(diào)試,然后 選項和設(shè)置
2、右邊勾上 啟用源服務(wù)器支持
3、左邊點 符號,把 微軟符號服務(wù)器 勾選上
4、運行的時候等一下,加載完成后就好了。
5、只是第一次加載,不用擔(dān)心。或者,你也可以等加載完了之后,再把之前勾選的取消掉,也沒有問題。
文章題目:opencvcvCaptureFromFile讀取視頻問題匯總-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://chinadenli.net/article16/cohgdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、響應(yīng)式網(wǎng)站、做網(wǎng)站、品牌網(wǎng)站制作、商城網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容