2017-03-20 27 views
0

我正在使用OpenCV抓取IP攝像機的流和幀。這裏是我的代碼片段:使用OpenCV無法打開/查看/抓取/讀取IP攝像機

import org.opencv.core.Core; 
import org.opencv.core.Mat; 
import org.opencv.imgproc.Imgproc; 
import org.opencv.videoio.VideoCapture; 
import org.opencv.videoio.Videoio; 
import org.opencv.imgcodecs.*; 
import org.opencv.core.Rect; 
import org.opencv.core.Size; 

public class Main { 
    public static void main(String[] args) { 
    String newCameraIP = "http://10.12.18.11/mjpg/video.mjpg"; 
    VideoCapture cap = new VideoCapture(); 
    if (cap.open(newCameraIP)) { 
     System.out.println("Camera opened from " + newCameraIP); 
    } else { 
     System.out.println("No camera found at " + newCameraIP + ". Trying USB ports..."); 
    } 

USB相機工作正常,但當我嘗試使用網絡攝像機,我收到以下錯誤信息: VIDEOIO(cvCreateFileCapture_AVFoundation(文件名)):募未知的C++異常!

+0

是什麼讓你覺得'VideoCapture'知道任何關於URL的內容? AFAICT C++和Java API只能打開本地文件。你必須先下載數據。 –

+0

@JimGarrison這實際上解釋了很多......我會如何去下載數據?我會在我的代碼中或單獨執行該操作嗎?使用OpenFV與ffmpeg支持怎麼樣?附:我需要實時執行此操作,因爲我正在將其用於視覺處理。 – mccoyLBI

+1

'cvCreateFileCapture'(帶有ffmpeg庫)可用於URL。剛剛檢查http://www.smartec-cctv.ru/docs/certificate/4-Compare_VMD_and_VCApresence_tracking_performance.wmv – MBo

回答

1

我剛剛在OSX上使用Python的確切問題。對我來說,解決方案是使用--with-ffmpeg標誌重建opencv。