Videoyu jxcapture kullanarak yakalamaya çalışıyorum. Bunu bir kerede yapabildim ama ikinci kez yakalamaya çalıştığımda aynı programdaki videoyu sıkıntıya soktum.Yetersiz sistem kaynakları, web kameralarından video yakalama java
public VideoCapture videoCapture = VideoCapture.create(VideoFormat.WMV);
public CaptureVideoFromWebCamera(){}
public void start(String filename){
List<VideoSource> availableVideoSources = VideoSource.getAvailable();
System.out.println("availableVideoSources = " + availableVideoSources);
if (availableVideoSources.isEmpty()) {
throw new IllegalStateException("No external video sources available");
}
VideoSource webCamera = availableVideoSources.get(0);
System.out.println("webCamera = " + webCamera);
videoCapture.setVideoSource(webCamera);
java.util.List<Codec> videoCodecs = videoCapture.getVideoCodecs();
System.out.println("videoCodecs = " + videoCodecs);
if (videoCodecs.isEmpty()) {
throw new IllegalStateException("No video codecs available");
}
Codec videoCodec = videoCodecs.get(2);
System.out.println("videoCodec = " + videoCodec);
EncodingParameters encodingParameters = new EncodingParameters(new File("WebCamera.wmv"));
encodingParameters.setBitrate(500000);
encodingParameters.setFramerate(10);
encodingParameters.setKeyFrameInterval(1);
encodingParameters.setCodec(videoCodec);
videoCapture.setEncodingParameters(encodingParameters);
videoCapture.start();
System.out.println("Recording started. Press 'Enter' to terminate.");
}
public void stop(String filename) throws IOException{
System.in.read();
videoCapture.stop();
}
public static void main(String[] args) throws Throwable {
CaptureVideoFromWebCamera obj = new CaptureVideoFromWebCamera();
obj.start("");
obj.stop("");
CaptureVideoFromWebCamera obj1 = new CaptureVideoFromWebCamera();
obj1.start("");
obj1.stop("");
}
yüzden aşağıdaki hatayı reveiving ediyorum yapmaya çalışıyorum}
(Sistem kaynakları yetersiz istenen hizmeti web kamera tamamlamak için var):
Kodum şudur iplik "ana" java.lang.RuntimeException içindeİstisna: com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart de java.lang.reflect.InvocationTargetException (sourceFile: 103) com.teamdev.jxcapture de . VideoCapture.start (SourceFile: 146)com.teamdev.jxdesktop.win32.g de java.lang.reflect.InvocationTargetException : Neden Olduğu capturer.CaptureVideoFromWebCamera.start (CaptureVideoFromWebCamera.java:58) capturer.CaptureVideoFromWebCamera.main (CaptureVideoFromWebCamera.java:76) de de.doInvokeAndWait (Bilinmeyen Kaynak) com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (SourceFile: 97) ... 3 daha Nedeniyle: com.teamdev.jxdesktop.win32.com.ComException: COM nesnesi yöntem hata kodu döndürür: 0x800705AA; İstenen hizmeti tamamlamak için yeterli sistem kaynağı mevcut değildir.
EDIT2: Ben ikinci yakalama işlemi için beklemek amacıyla koduna bazı iplik uyku eklemek yapmaya çalıştık.
CaptureVideoFromWebCamera obj = new CaptureVideoFromWebCamera();
obj.start("1.wmv");
obj.stop("");
Thread.sleep(5000);
CaptureVideoFromWebCamera obj1 = new CaptureVideoFromWebCamera();
obj1.start("2.wmv");
obj1.stop("");
Aynı hatayı aldım.
EDIT3: şu mesajı aldım yakalama için aynı nesneyi kullanmaya çalışıyorum zaman: dizisindeki
İstisna "ana" java.lang.RuntimeException: java.lang.reflect. CaptureVideoFromWebCamera.start de (CaptureVideoFromWebCamera.java:47) /: com.teamdev.jxcapture.VideoCapture.start (146 SourceFile) en : com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (103 SourceFile) de InvocationTargetException /videoCapture.start(); CaptureVideoFromWebCamera.main adresindeki (CaptureVideoFromWebCamera.java:64) /obj.start("2.wmv "); Yarattığı: : com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (97 SourceFile) de com.teamdev.jxdesktop.win32.g.doInvokeAndWait (Bilinmeyen Kaynak) de java.lang.reflect.InvocationTargetException . .. Daha fazla
Fotoğraf makinesini tekrar aramadan önce biraz uyku süresi eklemeye çalışın. Fotoğraf makinesini ikinci kez başlatmaya çalışırken durdurma işlemi tamamlanmamış olabilir. Ya da daha iyisi, kamerayı başlatmak ve durdurmak için bir düğmeye basmanız gereken bir GUI ile test edin. – Olantobi
İkisini de denedim hala aynı sorunu yaşıyorum! –
VideoStop'un yakalamayı durdurduğu görünse de, kameranın geri dönüşleri hala java'da kullanımda kalıyor, bu yüzden tekrar kapıcıyı başlatamıyorum. Program durmaya devam ediyor ancak kamera hala açık ve arabamın kapanması için programı kapatmam gerekiyor. –