ShootOFF icon indicating copy to clipboard operation
ShootOFF copied to clipboard

IP Camera not displaying Video in app, and will not launch app when restarted

Open 85frankenstein opened this issue 8 years ago • 24 comments

Configured DLink DCS933L on Wireless Network. Can easily see video in browser using address http://{Ip Address}/mjpeg.cgi. Created user account with no password on camera and configured appropriately in Shoot-Off software. Will not display video feed, and when saved, will not launch application again until removed from the Properties file... Have tried both MJPEG and H264 encoding with no luck

85frankenstein avatar Nov 23 '16 16:11 85frankenstein

Just an reiteration... having the IP Cam selected to display when restarting the app, will prevent the app from starting up... Attached is the diagnostic data

C:\Users>cd..

C:>cd shootoff-3.10-final

C:\shootoff-3.10-final>java -jar ShootOFF.jar -d SLF4J: A number (6) of logging calls during the initialization phase have been intercepted and are SLF4J: now being replayed. These are subject to the filtering rules of the underlying logging system. SLF4J: See also http://www.slf4j.org/codes.html#replay Exception in thread "GetIPcamResolution" com.github.sarxos.webcam.WebcamException: Cannot get initial image from IP camera device IPCAM 1 at com.github.sarxos.webcam.ds.ipcam.IpCamDevice.getResolutions(IpCamDevice.java:282) at com.github.sarxos.webcam.ds.ipcam.IpCamDevice.getResolution(IpCamDevice.java:295) at com.shootoff.camera.cameratypes.IpCamera.lambda$registerIpCamera$0(IpCamera.java:85) at java.lang.Thread.run(Unknown Source) 2016-11-23 15:52:39 [JavaFX Application Thread] INFO com.github.sarxos.webcam.Webcam - WebcamDefaultDriver capture driver will be used 2016-11-23 15:52:42 [JavaFX Application Thread] INFO com.github.sarxos.webcam.Webcam - Disposing webcam Logitech HD Webcam C270 0 2016-11-23 15:52:42 [JavaFX Application Thread] INFO com.github.sarxos.webcam.Webcam - Disposing webcam SDVC03.drv 1 INFO main: Mary starting up... INFO main: Specification version 5.1.2 INFO main: Implementation version unknown INFO main: Running on a Java 1.8.0_111 implementation by Oracle Corporation, on a Windows 10 platform (x86, 10.0) INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.JTokeniser' INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.FreeTTSTokenToWords' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.JPhonemiser(en_US.)' INFO JPhonemiser: User dictionary '.\user-dictionaries\userdict-en_US.txt' for locale 'en_US' does not exist. Ignoring. INFO ModuleRegistry: Now initiating mary module 'marytts.modules.JPhonemiser(en_GB.)' INFO JPhonemiser: User dictionary '.\user-dictionaries\userdict-en_GB.txt' for locale 'en_GB' does not exist. Ignoring. INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.Prosody' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.SimplePhoneme2AP(en_US)' INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.Utt2XMLWordsEn' INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.XML2UttTokensEn' INFO ModuleRegistry: Now initiating mary module 'marytts.language.en.PronunciationModel' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.OpenNLPPosTagger(en,en.pos)' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.Synthesis' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.TextToMaryXML' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.SableParser' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.SSMLParser' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.APMLParser' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.EmotionmlParser' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.JTokeniser' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.DummyTokens2Words' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.ProsodyGeneric' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.PronunciationModel' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.TargetFeatureLister' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.HalfPhoneTargetFeatureLister' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.AcousticModeller' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.RealisedAcoustparamsExtractor' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.RealisedDurationsExtractor' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.HTSEngine' INFO ModuleRegistry: Now initiating mary module 'marytts.modules.PraatTextGridGenerator' INFO JTokeniser: Module started (RAWMARYXML->TOKENS, locale en). 2016-11-23 15:52:42 [JavaFX Application Thread] INFO de.dfki.lt.tools.tokenizer.JTok - loading language resources for en from jtok/en INFO JTokeniser: Starting power-on self test. INFO JTokeniser: Power-on self test complete. INFO TokenToWords: Module started (FREETTS_TOKENS->FREETTS_WORDS, locale en). INFO FreeTTSVoices: Loading US English FreeTTS voices... INFO FreeTTSVoices: done. INFO TokenToWords: Starting power-on self test. INFO TokenToWords: Power-on self test complete. INFO JPhonemiser: Module started (PARTSOFSPEECH->PHONEMES, locale en_US). INFO JPhonemiser: Starting power-on self test. INFO JPhonemiser: Power-on self test complete. INFO JPhonemiser: Module started (PARTSOFSPEECH->PHONEMES, locale en_GB). INFO JPhonemiser: Starting power-on self test. INFO JPhonemiser: Power-on self test complete. INFO Prosody: Module started (PHONEMES->INTONATION, locale en). INFO Prosody: Starting power-on self test. INFO Prosody: Power-on self test complete. INFO SimplePhoneme2AP: Module started (SIMPLEPHONEMES->ACOUSTPARAMS, locale en_US). INFO SimplePhoneme2AP: Starting power-on self test. INFO SimplePhoneme2AP: Power-on self test complete. INFO Utt2XML WordsEn: Module started (FREETTS_WORDS->WORDS, locale en). INFO FreeTTSVoices: Loading US English FreeTTS voices... INFO FreeTTSVoices: done. INFO Utt2XML WordsEn: Starting power-on self test. INFO Utt2XML WordsEn: Power-on self test complete. INFO XML2Utt TokensEn: Module started (TOKENS->FREETTS_TOKENS, locale en). INFO FreeTTSVoices: Loading US English FreeTTS voices... INFO FreeTTSVoices: done. INFO XML2Utt TokensEn: Starting power-on self test. INFO XML2Utt TokensEn: Power-on self test complete. INFO PronunciationModel: Module started (INTONATION->ALLOPHONES, locale en). INFO PronunciationModel: Starting power-on self test. INFO PronunciationModel: Power-on self test complete. INFO OpenNLPPosTagger: Module started (WORDS->PARTSOFSPEECH, locale en). INFO OpenNLPPosTagger: Starting power-on self test. INFO OpenNLPPosTagger: Power-on self test complete. INFO UnitSelectionSynthesizer: started. INFO TargetFeatureLister: Module started (ACOUSTPARAMS->TARGETFEATURES, locale null). INFO HTSEngine: Module started (TARGETFEATURES->AUDIO, locale null). INFO HMMData: Loading Tree Set in CARTs: INFO HMMData: Loading GV Model Set: INFO Voice: Registering voice `cmu-slt-hsmm': female, locale en_US INFO Voice: New default voice for locale en_US: cmu-slt-hsmm (desire 0) INFO HMMSynthesizer: started. INFO Synthesis: Module started (ACOUSTPARAMS->AUDIO, locale null). INFO HMMSynthesizer: Starting power-on self test. INFO HTSEngine: Using prosody from acoustparams. INFO HTSEngine: Number of models in sentence numModel=7 Total number of states numState=35 INFO HTSEngine: Total number of frames=147 Number of voiced frames=89 INFO ParameterGeneration: Parameter generation for MGC: INFO PStream: Context-dependent global variance optimization: gvLength = 107 INFO PStream: Gradient GV optimization for feature: (0) number of iterations=23 INFO PStream: Gradient GV optimization for feature: (1) number of iterations=54 INFO PStream: Gradient GV optimization for feature: (2) number of iterations=38 INFO PStream: Gradient GV optimization for feature: (3) number of iterations=20 INFO PStream: Gradient GV optimization for feature: (4) number of iterations=13 INFO PStream: Gradient GV optimization for feature: (5) number of iterations=21 INFO PStream: Gradient GV optimization for feature: (6) number of iterations=7 INFO PStream: Gradient GV optimization for feature: (7) number of iterations=4 INFO PStream: Gradient GV optimization for feature: (8) number of iterations=11 INFO PStream: Gradient GV optimization for feature: (9) number of iterations=19 INFO PStream: Gradient GV optimization for feature: (10) number of iterations=16 INFO PStream: Gradient GV optimization for feature: (11) number of iterations=9 INFO PStream: Gradient GV optimization for feature: (12) number of iterations=2 INFO PStream: Gradient GV optimization for feature: (13) number of iterations=13 INFO PStream: Gradient GV optimization for feature: (14) number of iterations=12 INFO PStream: Gradient GV optimization for feature: (15) number of iterations=14 INFO PStream: Gradient GV optimization for feature: (16) number of iterations=15 INFO PStream: Gradient GV optimization for feature: (17) number of iterations=14 INFO PStream: Gradient GV optimization for feature: (18) number of iterations=19 INFO PStream: Gradient GV optimization for feature: (19) number of iterations=12 INFO PStream: Gradient GV optimization for feature: (20) number of iterations=17 INFO PStream: Gradient GV optimization for feature: (21) number of iterations=23 INFO PStream: Gradient GV optimization for feature: (22) number of iterations=12 INFO PStream: Gradient GV optimization for feature: (23) number of iterations=18 INFO PStream: Gradient GV optimization for feature: (24) number of iterations=12 INFO PStream: Gradient GV optimization for feature: (25) number of iterations=11 INFO PStream: Gradient GV optimization for feature: (26) number of iterations=13 INFO PStream: Gradient GV optimization for feature: (27) number of iterations=9 INFO PStream: Gradient GV optimization for feature: (28) number of iterations=13 INFO PStream: Gradient GV optimization for feature: (29) number of iterations=8 INFO PStream: Gradient GV optimization for feature: (30) number of iterations=11 INFO PStream: Gradient GV optimization for feature: (31) number of iterations=12 INFO PStream: Gradient GV optimization for feature: (32) number of iterations=7 INFO PStream: Gradient GV optimization for feature: (33) number of iterations=8 INFO PStream: Gradient GV optimization for feature: (34) number of iterations=12 INFO ParameterGeneration: Using f0 from maryXML acoustparams INFO PStream: Context-dependent global variance optimization: gvLength = 107 INFO PStream: Gradient GV optimization for feature: (0) number of iterations=16 INFO PStream: Gradient GV optimization for feature: (1) number of iterations=2 INFO PStream: Gradient GV optimization for feature: (2) number of iterations=2 INFO PStream: Gradient GV optimization for feature: (3) number of iterations=8 INFO PStream: Gradient GV optimization for feature: (4) number of iterations=26 INFO HMMSynthesizer: Power-on self test complete. INFO TextToMaryXML: Module started (TEXT->RAWMARYXML, locale null). INFO TextToMaryXML: Starting power-on self test. WARN TextToMaryXML: Locale is null, overriding with en_US WARN TextToMaryXML: Locale is null, overriding with en_US INFO TextToMaryXML: Power-on self test complete. INFO SableParser: Module started (SABLE->RAWMARYXML, locale null). INFO SableParser: Starting power-on self test. INFO SableParser: Power-on self test complete. INFO SSMLParser: Module started (SSML->RAWMARYXML, locale null). INFO SSMLParser: Starting power-on self test. INFO SSMLParser: Power-on self test complete. INFO APMLParser: Module started (APML->RAWMARYXML, locale null). INFO APMLParser: Starting power-on self test. INFO APMLParser: Power-on self test complete. INFO EmotionmlParser: Module started (EMOTIONML->RAWMARYXML, locale null). INFO EmotionmlParser: Starting power-on self test. INFO EmotionmlParser: Power-on self test complete. INFO JTokeniser: Module started (RAWMARYXML->TOKENS, locale null). 2016-11-23 15:52:44 [JavaFX Application Thread] INFO de.dfki.lt.tools.tokenizer.JTok - loading language resources for en from jtok/en INFO JTokeniser: Starting power-on self test. INFO JTokeniser: Power-on self test complete. INFO DummyTokens2Words: Module started (TOKENS->WORDS, locale null). INFO DummyTokens2Words: Starting power-on self test. INFO DummyTokens2Words: Power-on self test complete. INFO Prosody: Module started (PHONEMES->INTONATION, locale null). INFO Prosody: Starting power-on self test. INFO Prosody: Power-on self test complete. INFO PronunciationModel: Module started (INTONATION->ALLOPHONES, locale null). INFO PronunciationModel: Starting power-on self test. INFO PronunciationModel: Power-on self test complete. INFO TargetFeatureLister: Starting power-on self test. INFO TargetFeatureLister: Power-on self test complete. INFO TargetFeatureLister: Module started (ACOUSTPARAMS->HALFPHONE_TARGETFEATURES, locale null). INFO TargetFeatureLister: Starting power-on self test. INFO TargetFeatureLister: Power-on self test complete. INFO AcousticModeller: Module started (ALLOPHONES->ACOUSTPARAMS, locale null). INFO AcousticModeller: Starting power-on self test. INFO AcousticModeller: Power-on self test complete. INFO Realised acoustparams extractor: Module started (AUDIO->REALISED_ACOUSTPARAMS, locale null). INFO Realised acoustparams extractor: Starting power-on self test. INFO Realised acoustparams extractor: Power-on self test complete. INFO Realised durations extractor: Module started (AUDIO->REALISED_DURATIONS, locale null). INFO Realised durations extractor: Starting power-on self test. INFO Realised durations extractor: Power-on self test complete. INFO Praat TextGrid generator: Module started (AUDIO->PRAAT_TEXTGRID, locale null). INFO Praat TextGrid generator: Starting power-on self test. INFO Praat TextGrid generator: Power-on self test complete. INFO main: Startup complete. 2016-11-23 15:52:44 [JavaFX Application Thread] INFO com.shootoff.Main - Error reporting has been disabled. 2016-11-23 15:52:45 [Plugin Watcher] DEBUG c.s.plugins.engine.PluginEngine - Starting to watch plugins directory Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) at java.lang.Thread.run(Unknown Source) Caused by: com.github.sarxos.webcam.WebcamException: Cannot get initial image from IP camera device IPCAM 1 at com.github.sarxos.webcam.ds.ipcam.IpCamDevice.getResolutions(IpCamDevice.java:282) at com.github.sarxos.webcam.ds.ipcam.IpCamDevice.getResolution(IpCamDevice.java:295) at com.github.sarxos.webcam.Webcam.getViewSize(Webcam.java:538) at com.github.sarxos.webcam.Webcam.setViewSize(Webcam.java:590) at com.shootoff.camera.cameratypes.IpCamera.setViewSize(IpCamera.java:185) at com.shootoff.camera.CameraManager.start(CameraManager.java:183) at com.shootoff.camera.CamerasSupervisor.addCameraManager(CamerasSupervisor.java:44) at com.shootoff.gui.controller.ShootOFFController.addCameraTab(ShootOFFController.java:540) at com.shootoff.gui.controller.ShootOFFController.addConfiguredCameras(ShootOFFController.java:520) at com.shootoff.gui.controller.ShootOFFController.init(ShootOFFController.java:250) at com.shootoff.Main.runShootOFF(Main.java:584) at com.shootoff.Main.start(Main.java:747) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) ... 1 more Exception running application com.shootoff.Main INFO main: Shutting down modules... INFO JTokeniser: Module shut down. INFO TokenToWords: Module shut down. INFO JPhonemiser: Module shut down. INFO JPhonemiser: Module shut down. INFO Prosody: Module shut down. INFO SimplePhoneme2AP: Module shut down. INFO Utt2XML WordsEn: Module shut down. INFO XML2Utt TokensEn: Module shut down. INFO PronunciationModel: Module shut down. INFO OpenNLPPosTagger: Module shut down. INFO Synthesis: Module shut down. INFO TextToMaryXML: Module shut down. INFO SableParser: Module shut down. INFO SSMLParser: Module shut down. INFO APMLParser: Module shut down. INFO EmotionmlParser: Module shut down. INFO JTokeniser: Module shut down. INFO DummyTokens2Words: Module shut down. INFO Prosody: Module shut down. INFO PronunciationModel: Module shut down. INFO TargetFeatureLister: Module shut down. INFO TargetFeatureLister: Module shut down. INFO AcousticModeller: Module shut down. INFO Realised acoustparams extractor: Module shut down. INFO Realised durations extractor: Module shut down. INFO HTSEngine: Module shut down. INFO Praat TextGrid generator: Module shut down. INFO main: Shutdown complete.

C:\shootoff-3.10-final>

85frankenstein avatar Nov 23 '16 20:11 85frankenstein

If you open up shootoff.properties in a text editor you can nuke everything after the equals sign in the line shootoff.webcams= and it will start again since you will have the default camera configuration again.

I've seen this error before if there is an chroming or html around the webcam feed. Is there a link that is literally nothing but the frames from the camera (e.g., the camera feed with nothing around it at all)?

phrack avatar Nov 23 '16 22:11 phrack

I was able to get the software to load again by editing the properties file... I'm REALLY trying to get that IP Camera working... That would be the crowning achievement and allow me to deploy it the way I'm hoping to.... The feed URL that I'm using is: http://IP ADDRESS/mjpeg.cgi?user={USERNAME}&password={PASSWORD}&channel=1

Just cannot seem to get Shoot-Off to see the feed

85frankenstein avatar Nov 23 '16 22:11 85frankenstein

Phrack... Not sure I understand your question correctly, but this camera is solely an IP camera... There is no way to access the feed other than through navigating to it through a URL.. It is either on Wireless or through network cable, but there is no USB or other direct access on this camera...

85frankenstein avatar Nov 23 '16 23:11 85frankenstein

What I mean is that some URLs will take you to a page where the webcam feed is surrounded by controls, settings, status messages, and things like that. Others (usually a mobile link) will just be the webcam feed with literally nothing else (webcam feed in the top left and white on all of the other sides). If you can find one, you want this second kind of URL because the webcam driver does not do well if there is non-webcam feed related content at the URL.

phrack avatar Nov 24 '16 14:11 phrack

Phrack- Yes, the URL posted is just the video feed... none of the D-Link stuff...

85frankenstein avatar Nov 25 '16 00:11 85frankenstein

I think I might have figured out where the issue is... The URL posted above for the video feed does not pass credentialing to the camera... So the lack of video would be due to the fact that the software isn't passing the username and password to the camera to display... I tried the links alone in another browser, and have been challenged for credentials.... I'll have to do some digging...

85frankenstein avatar Nov 26 '16 12:11 85frankenstein

Nope... Struck out.... This is the URL, passing credentials, for the D-Link DCS-932L... http://[USERNAME]:[PASSWORD]@IPADDRESS:PORT/mjpeg.cgi

I've verified it works on a machine that has never accessed this camera before, and this link went right into the feed... I'm really stumped here... This SHOULD work...

85frankenstein avatar Nov 26 '16 13:11 85frankenstein

Looking at things again... Can anyone tell me why the software changes the URL and adds a backslash before every colon in the feed URL for the camera in the properties file? This happens whether I add the URL in the GUI or just hacking the properties configuration file from Notepad...

85frankenstein avatar Nov 26 '16 18:11 85frankenstein

You're honestly better off poking around here because this isn't our code: https://github.com/sarxos/webcam-capture/tree/master/webcam-capture-drivers/driver-ipcam.

phrack avatar Nov 26 '16 18:11 phrack

Thank you Phrack... If I figure it out, I will certainly write it up!

85frankenstein avatar Nov 26 '16 18:11 85frankenstein

I would suggest capturing a pcap (Using wireshark or similar) of the request that is made, to see if the HTTP request is correct and is receiving a proper jpeg.

cbdmaul avatar Nov 27 '16 02:11 cbdmaul

Sorry for the delay, but after running Wireshark and analyzing the capture, I can say that ShootOff is passing the information properly. I compared the capture while running ShootOff against a capture while just accessing the feed directly from the URL... Both were identical... It also appears as if the Camera is sending the information back to the software with continuous packets... The software just can't seem to render the video for some reason... After digging in at the webcam-capture site Phrack might be right in needing to have some work done on that Java Archive.... Might need a class built for the camera...

85frankenstein avatar Dec 01 '16 21:12 85frankenstein

Have you checked to see if the camera will let you change the image format? Only asking because my IP cameras do.

phrack avatar Dec 01 '16 22:12 phrack

It allows me to change the compression format from MJPEG to H.264.... Have tried both with no success... I can still see it all in a browser, but not in the app...

85frankenstein avatar Dec 01 '16 23:12 85frankenstein

Phrack, Let me ask... Do you have a functioning IPCamera in ShootOff? If so what brand and model?

85frankenstein avatar Dec 01 '16 23:12 85frankenstein

Yea, I use a TrendNet TV-IP562W. @cbdmaul has one that works too that I believe is more affordable (I don't recall the make and model).

phrack avatar Dec 01 '16 23:12 phrack

Must just be this D-Link Camera.... I'm really puzzled with it.... Maybe I should just cut bait with the D-Link and just go one's that are known to work.... I saw the price on the one you listed and it wasn't horrible at all...

85frankenstein avatar Dec 01 '16 23:12 85frankenstein

One last thing you could try for debugging purposes:

  1. Change this line to Level.TRACE: https://github.com/phrack/ShootOFF/blob/master/src/main/java/com/shootoff/config/Configuration.java#L772
  2. Run ShootOFF again and see which log message in this internal class you get (it's the one that's not getting the images for you): https://github.com/sarxos/webcam-capture/blob/7e82df6ba87cdff3edfc4c8318ac0f0769db4a4a/webcam-capture-drivers/driver-ipcam/src/main/java/com/github/sarxos/webcam/ds/ipcam/IpCamDevice.java#L52

Best case you get a clue that solves it without code changes, middle case it requires a patch to webcam-capture, and worst case it gets you nothing.

phrack avatar Dec 01 '16 23:12 phrack

I suspect I'd recommend dmaul's over mine. Mine is fairly expensive and has some annoying issues I put up with (e.g. sometimes one of them randomly forgets all of its settings and has to be reconfigured as if it just came out of the box).

phrack avatar Dec 01 '16 23:12 phrack

PS. If you do the log level patch I suggest above you can simply compile ShootOFF with gradle fxJar -x test. A runnable version of ShootOFF will be in build/dist.

phrack avatar Dec 01 '16 23:12 phrack

I have two Foscam IP cams, a FI8918W and a FI9821W. Their software and website are really terrible. I wanted to go into them to see what options there are, but I can't get into the 9821W because it requires a browser plugin that doesn't support chrome, firefox, or edge. I can get into the 8918W, which is older, and it supports MJPEG and we've used it for ShootOFF before. The 9821W doesn't support MJPEG AFAIK, I use H264 on it. Bottom line: Foscam cameras aren't too bad hardware, but their developers are awful, absolutely unacceptable.

H264 support could be added to ShootOFF, there's no fundamental difference between streaming that from a camera and our test videos which are stored compressed. Not saying it is feasible but it is possible. H264 compression is more likely to drop a shot as noise.

cbdmaul avatar Dec 01 '16 23:12 cbdmaul

TrendNets have the same plugin problem. Some settings can only be configured using a shitty proprietary plugin only in Internet Explorer.

There is probably some money to be made in making an IP camera that isn't a pile of shit.

phrack avatar Dec 01 '16 23:12 phrack

I'm off tomorrow so I'll hammer away on it again, but I'm reluctant to spend a ton of time on it if we have a working model... I'd almost rather just get the different cameras and chalk the D-Link up to the home security system... Luckily I've only got $50 into it...

85frankenstein avatar Dec 02 '16 00:12 85frankenstein