您好,登錄后才能下訂單哦!
一、無法讀取文件
報錯:
OpenCV報錯:
warning: Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)
capture device failed to open!
(1)可以是讀取的文件目錄存在問題,找不到相應的視頻文件,導致返回NULL;
(2)讀取的視頻文件存在問題,不是真正的視頻文件;
(3)缺失解碼
由于我是從臺式機上copy過來的項目,前兩總情況基本不成立;由于系統的差異,我還是測試了路徑中使用‘/’ 或者'\\'、間接路徑改為直接路徑等,但是任然沒有解決。
2、解決方法
通過一系列的測試,我最終鎖定問題3,于是檢索相關問題解決方案。
(1)部分解決方法 下載xvid并安裝,https://www.xvid.com/download/ 。
(2)另一種說法是下載K-Lite_Codec_Pack 軟件安裝,里面包含了需要的解碼接口。
然而,這兩種方法都沒有解決我存在的問題,最初我還以為是設置除了問題,是不是環境變量設置不對,安裝以上的軟件是不需要配置,但總覺得挺麻煩,于是冷靜下來,從頭在思考。總覺得opencv設計不應該存在這么強依賴性的缺陷,于是我想到是不是缺少組件。因為編譯通過,程序可以運行,我就認為配置上不會存在問題,但還是看了看相關dll。
(3)缺少opencv_ffmpeg2410.dll,將opencv_ffmpeg2410.dll加入到項目根文件夾下或者debug中。
三、dll文件配置
我們在使用vs進行開發調試的時候經常會遇到一個問題,就是當我們的主工程引用到其他工程更新的dll(我們經常采用copy到工程目錄的方法)、亦或者當我們的多個工程引用到同一個dll文件的時候,我們怎么來配置:
1、將dll配置到環境變量:
這種方法當然是可行的,只不過當我們的工程位置發生變化,環境變量就需要重新配置,而且為了單個小工程就去改變環境變量顯得小題大做,不過也是一種方法;
2、工程的本地化配置:
通過設置vs工程的環境變量,實現對單個工程本地化配置的目標,環境變量可隨整個工程遷移,設置方法:vs工程屬性-->配置屬性-->調試-->環境,例如,我們要引用../../bin/目錄里面的dll,那么我們可以設置為: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、點 調試,然后 選項和設置
2、右邊勾上 啟用源服務器支持
3、左邊點 符號,把 微軟符號服務器 勾選上
4、運行的時候等一下,加載完成后就好了。
5、只是第一次加載,不用擔心。或者,你也可以等加載完了之后,再把之前勾選的取消掉,也沒有問題。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。