मैं jxcapture का उपयोग कर वीडियो कैप्चर करने का प्रयास कर रहा हूं। मैं सिर्फ एक बार ऐसा करने में कामयाब रहता हूं लेकिन जब मैं दूसरी बार वीडियो को उसी कार्यक्रम में कैप्चर करने की कोशिश कर रहा हूं तो मुझे परेशानी हो गई।अपर्याप्त सिस्टम संसाधन, वेब कैमरा जावा से वीडियो कैप्चर करें
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("");
}
}
जब मैं तो मैं निम्न त्रुटि reveiving कर रहा हूँ करने के लिए कोशिश कर रहा हूँ (अपर्याप्त सिस्टम संसाधन का अनुरोध सेवा वेब कैमरा पूरा करने के लिए मौजूद हैं):
मेरे कोड इस प्रकार है धागा "मुख्य" java.lang.RuntimeException मेंअपवाद: com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart पर java.lang.reflect.InvocationTargetException (sourcefile: 103) com.teamdev.jxcapture पर। VideoCapture.start (SourceFile: 146)capturer.CaptureVideoFromWebCamera.start (CaptureVideoFromWebCamera.java:58) capturer.CaptureVideoFromWebCamera.main (CaptureVideoFromWebCamera.java:76) पर परकी वजह से: com.teamdev.jxdesktop.win32.g पर java.lang.reflect.InvocationTargetException .doInvokeAndWait (अज्ञात स्रोत) com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (SourceFile: 97) ... 3 और कारण: com.teamdev.jxdesktop.win32.com.ComException: COM ऑब्जेक्ट विधि त्रुटि कोड देता है: 0x800705AA; अनुरोधित सेवा को पूरा करने के लिए अपर्याप्त सिस्टम संसाधन मौजूद हैं।
EDIT2: मैं आदेश दूसरा कैप्चरिंग प्रक्रिया के लिए प्रतीक्षा करने में कोड करने के लिए कुछ धागा नींद जोड़ने करने की कोशिश की।
CaptureVideoFromWebCamera obj = new CaptureVideoFromWebCamera();
obj.start("1.wmv");
obj.stop("");
Thread.sleep(5000);
CaptureVideoFromWebCamera obj1 = new CaptureVideoFromWebCamera();
obj1.start("2.wmv");
obj1.stop("");
मुझे एक ही त्रुटि मिली।
EDIT3: जब मैं कैप्चरिंग मैं निम्नलिखित संदेश मिला के लिए एक ही वस्तु का उपयोग करने के कोशिश कर रहा हूँ:
सूत्र में अपवाद "मुख्य" java.lang.RuntimeException: java.lang.reflect। com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (sourcefile: 103) में InvocationTargetException com.teamdev.jxcapture.VideoCapture.start (sourcefile: 146) में CaptureVideoFromWebCamera.start पर (CaptureVideoFromWebCamera.java:47)//videoCapture.start(); कैप्चरविडियो FromWebCamera.main पर (कैप्चरविडियोफ्रॉमवेबकैमेरा.जावा:64) /obj.start("2.wmv "); की वजह से: : com.teamdev.jxcapture.video.win.BaseDirectShowCapture.doStart (97 sourcefile) पर com.teamdev.jxdesktop.win32.g.doInvokeAndWait (अज्ञात स्रोत) पर java.lang.reflect.InvocationTargetException । .. 3 और
कैमरे को दोबारा कॉल करने से पहले कुछ नींद का समय जोड़ने का प्रयास करें। जब आप दूसरी बार कैमरा शुरू करने का प्रयास कर रहे हों तो स्टॉप ऑपरेशन पूरा नहीं हो सकता है। या बेहतर अभी भी, एक जीयूआई के साथ परीक्षण करें जहां आपको कैमरा शुरू करने और रोकने के लिए एक बटन दबा देना है। – Olantobi
मैंने उन दोनों की कोशिश की अभी भी मुझे एक ही समस्या मिली है! –
ऐसा लगता है कि वीडियोस्टॉप कैप्चरिंग को रोकता है, हालांकि कैमरे के लिए संसाधन अभी भी जावा से उपयोग में रहते हैं, इसलिए मैं फिर से कैप्चरर को प्रारंभ नहीं कर सकता। कार्यक्रम कैप्चरिंग बंद कर देता है हालांकि कैमरा अभी भी खुला है और मुझे अपने कारमेरा को बंद करने के लिए प्रोग्राम बंद करना होगा। –