Standalone Java app for dedicated live view with Instant Replay

I have been giving this a try at my shop as I have the blue iris machine hidden in the network room, and did not want to run a long HDMI cable.

But I have noticed that the application will freeze after 5 - 10 minutes and stop updating the cameras, I am on a full Gigabit wired network so I don't think it is the network causing this. The rest of the machine is responsive and it is a brand new system.

Any ideas on how to track down why its doing this?
 
There are a number things to look at or try.

1) What is the CPU and memory usage like on the Blue Iris server while you are using this program? It can be very CPU intensive building all those jpeg images, and if you are running out of CPU or memory on the BI server it could lead to any kind of failures.

2) Try disabling MJPEG streaming mode if it is enabled. (Options -> Performance -> Use MJPEG video) If MJPEG is disabled, then it will fall back to the slightly more reliable jpeg pull method.

3) It may also help to make sure logging is enabled and working -- check the About panel where there is a checkbox at the bottom to enable logging. You should get a file called "BlueIrisViewer_Errors.txt". It tries to log an event each time you enable or disable logging, so you can verify that it works:

Code:
2016/03/18 10:18:52 (class org.brian.blueirisviewer.ui.AboutWnd): Disabling File Logging
2016/03/18 10:18:55 (class org.brian.blueirisviewer.ui.AboutWnd): Enabled File Logging
2016/03/18 10:18:58 (class org.brian.blueirisviewer.ui.AboutWnd): Disabling File Logging
2016/03/18 10:18:59 (class org.brian.blueirisviewer.ui.AboutWnd): Enabled File Logging

If the error log doesn't appear next to the jar file, then BlueIrisViewer doesn't have permission to write to the directory where it is located.

3) Try disabling Instant Replay if you have that enabled. If the disk is very slow or nearly full, this feature could potentially cause streaming to fail.
 
  • Like
Reactions: DirtBound
See reply in the quote
there are a number things to look at or try.

1) what is the cpu and memory usage like on the blue iris server while you are using this program? It can be very cpu intensive building all those jpeg images, and if you are running out of cpu or memory on the bi server it could lead to any kind of failures.
without the viewer running the cpu is at about 40% cpu and 1.6gb of 3.26gb usable. With the viewer running cpu is between 65 - 75% and memory did not change.

2) try disabling mjpeg streaming mode if it is enabled. (options -> performance -> use mjpeg video) if mjpeg is disabled, then it will fall back to the slightly more reliable jpeg pull method.
haven't ever enabled that before.

3) it may also help to make sure logging is enabled and working -- check the about panel where there is a checkbox at the bottom to enable logging. You should get a file called "blueirisviewer_errors.txt". It tries to log an event each time you enable or disable logging, so you can verify that it works:

Code:
2016/03/18 10:18:52 (class org.brian.blueirisviewer.ui.aboutwnd): Disabling file logging
2016/03/18 10:18:55 (class org.brian.blueirisviewer.ui.aboutwnd): Enabled file logging
2016/03/18 10:18:58 (class org.brian.blueirisviewer.ui.aboutwnd): Disabling file logging
2016/03/18 10:18:59 (class org.brian.blueirisviewer.ui.aboutwnd): Enabled file logging
i see this in the log from each run of the viewer.
2016/03/17 16:28:56 an exception has occurred in class org.brian.blueirisviewer.images.images:couldn't load pixmap from image data
com.badlogic.gdx.utils.gdxruntimeexception: Couldn't load pixmap from image data
at com.badlogic.gdx.graphics.pixmap.<init>(pixmap.java:127)
at org.brian.blueirisviewer.images.images.get(images.java:734)
at org.brian.blueirisviewer.images.images.get(images.java:693)
at org.brian.blueirisviewer.instantreplay.instantreplaymanager$3.run(instantreplaymanager.java:264)
at java.lang.thread.run(unknown source)
caused by: Java.io.ioexception: Couldn't load pixmap unknown image type
at com.badlogic.gdx.graphics.g2d.gdx2dpixmap.<init>(gdx2dpixmap.java:57)
at com.badlogic.gdx.graphics.pixmap.<init>(pixmap.java:125)
... 4 more


2016/03/17 16:28:56 an exception has occurred in class org.brian.blueirisviewer.images.images:
Not a jpeg file: Starts with 0x3c 0x21
java.lang.exception: Not a jpeg file: Starts with 0x3c 0x21
at org.libjpegturbo.turbojpeg.tjdecompressor.decompressheader(native method)
at org.libjpegturbo.turbojpeg.tjdecompressor.setsourceimage(tjdecompressor.java:103)
at org.libjpegturbo.turbojpeg.tjdecompressor.<init>(tjdecompressor.java:58)
at org.brian.blueirisviewer.images.images.get(images.java:705)
at org.brian.blueirisviewer.images.images.get(images.java:693)
at org.brian.blueirisviewer.instantreplay.instantreplaymanager$3.run(instantreplaymanager.java:264)
at java.lang.thread.run(unknown source)

if the error log doesn't appear next to the jar file, then blueirisviewer doesn't have permission to write to the directory where it is located.

3) try disabling instant replay if you have that enabled. If the disk is very slow or nearly full, this feature could potentially cause streaming to fail.
don't use that as i am on a ssd.
 
See reply in the quote

Your log entries suggest that Blue Iris is redirecting to another page (almost certainly the login page). The two characters, 0x3c 0x21 map to <! which is a common start of an html document...

The login.htm page actually starts with this (LOL @ Ken):
HTML:
<!-- saved from url=(0022)http://internet.e-mail -->

But a lot of modern pages like my ui2.htm start with this:
HTML:
<!DOCTYPE html>

anyway the takeaway point here is that Blue Iris is sending html instead of an image, and the only time I know it to do that is when your session unexpectedly expires. This can happen if Blue Iris has crashed and restarted itself. If you are not sure if that is happening, try looking in Task Manager (Details tab if you are on Win8 or 10) on the Blue Iris server. Enable the "CPU Time" column and see if it regularly gets reset to 0. Or look at the PID column to see if that changes. PID should stay the same if the process is not crashing.

I am not sure of anything else that would cause your session to expire. Blue Iris used to share sessions between all users coming from the same IP address but I think that got "fixed" so it wouldn't do that anymore, like a year ago. If somehow your session is being logged out on another PC that could explain it too.
 
  • Like
Reactions: DirtBound
Well after I posted this earlier, I remoted into the blue iris machine and updated it to the latest version.
I also changed the refresh to 1000ms from the default 450ms, and so far it has not stopped working. I don't know if it was related to the version I was running or the refresh or not. But I have had it up for almost 6 hours without stopping.

The only other thing I did change was stop the local view as the system does not have a monitor on it. I am guessing it is possible that with the local live view and the remote it could possibly hit 100% cpu and blue iris tools would restart it. But that is just a theory as I was not seeing that high of CPU.
 
Hi,

Just trying the java app, fresh install of Java8Update101. Fresh install of Win7Pro 32bit (teamviewer/vlc/few drivers/BI activex, less than 10 things in add remove).

When double clicking your java file, it unpacks two files, the GUI (titled BlueIrisViewer) flashes up and disappears.
Is this a common thing i've missed? Couldn't spot any logs anywhere

Windows Touchscreen Tablet (Atom CPU and 2GB RAM, Intel GMA3150 GFX), no AV or any apps currently running
 
Hi,

Just trying the java app, fresh install of Java8Update101. Fresh install of Win7Pro 32bit (teamviewer/vlc/few drivers/BI activex, less than 10 things in add remove).

When double clicking your java file, it unpacks two files, the GUI (titled BlueIrisViewer) flashes up and disappears.
Is this a common thing i've missed? Couldn't spot any logs anywhere

Windows Touchscreen Tablet (Atom CPU and 2GB RAM, Intel GMA3150 GFX), no AV or any apps currently running


I would hope the java file would have been signed but you could try going to Control panel --> Java --> Security and add the IP address of your BI server to the exceptions list?
 
thanks for your quick reply. i've added http://IP and also http://IP:81, also loopback ip for the tablet and its current wifi ip.
I've right clicked on the jar file and clicked the unblock.

either way it does load but i only see it for a split second.

If someone confirms what java version it definitely runs on, i will try that (maybe 8U101 is too new / has new security).
I'll try updating graphics drivers and will try it on anohter mchine
 
There are two things you can try.

1) It may be a file write permission problem. If so, it should work if your move the jar file to your desktop before running it. The app attempts to save its configuration file, among other things, in the location where the jar file is located.

If that fails,

2) Try running the jar file from a command prompt, so you can see all console output in case an error message is in there:

Yh8MoKh.jpg


Enter the command:

Code:
java -jar BlueIrisViewer.jar
 
There are two things you can try.

1) It may be a file write permission problem. If so, it should work if your move the jar file to your desktop before running it. The app attempts to save its configuration file, among other things, in the location where the jar file is located.

If that fails,

2) Try running the jar file from a command prompt, so you can see all console output in case an error message is in there:

Yh8MoKh.jpg


Enter the command:

Code:
java -jar BlueIrisViewer.jar


Will not run for me either:
Results from the above procedure:
C:\Users\cat\Desktop\BlueIrisViewer>java -jar BlueIrisViewer.jar

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: OpenGL is not supported by the video driver.​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:228)​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:165)​
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:131)​
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)​
Caused by: org.lwjgl.LWJGLException: Pixel format not accelerated​
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)​
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)​
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:252)​
at org.lwjgl.opengl.Display.createWindow(Display.java:306)​
at org.lwjgl.opengl.Display.create(Display.java:848)​
at org.lwjgl.opengl.Display.create(Display.java:757)​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:212)​
... 3 more​

C:\Users\cat\Desktop\BlueIrisViewer>
Thanks,
 
Will not run for me either:
Results from the above procedure:
C:\Users\cat\Desktop\BlueIrisViewer>java -jar BlueIrisViewer.jar

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: OpenGL is not supported by the video driver.​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:228)​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.setupDisplay(LwjglGraphics.java:165)​
at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:131)​
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:114)​
Caused by: org.lwjgl.LWJGLException: Pixel format not accelerated​
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)​
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)​
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:252)​
at org.lwjgl.opengl.Display.createWindow(Display.java:306)​
at org.lwjgl.opengl.Display.create(Display.java:848)​
at org.lwjgl.opengl.Display.create(Display.java:757)​
at com.badlogic.gdx.backends.lwjgl.LwjglGraphics.createDisplayPixelFormat(LwjglGraphics.java:212)​
... 3 more​

C:\Users\cat\Desktop\BlueIrisViewer>
Thanks,

I get the same / very similar OpenGL error as above. mine is built in Intel GMA3150 (windows 7 tablet).
a quick google does mention some versions of opengl 1.3/1.4 but not 2 for linux / windows.
 
Updated to version 2.7

  • BlueIrisViewer is now capable of restoring a lost session when authentication is required and "Secure only" mode is checked in Blue Iris's web server options.
  • When Instant Replay is delaying video, the time delayed will always be visible in the lower left corner even if the cursor is far away.

https://blueirisview.codeplex.com/
 
Does this software support windows 10? Ive tried installing on 3 machines and only the windows 7 machine works. Its just says cant connect.
 
When i open the file and it comes up with the screen to input the server info everytime i press a key, doesnt matter which one, it throws up an error as in the picture attached.
errors.png
 
Can't help you there. I have it running on more than one PC and it just works once you have put the right info in settings.
 
Things is that i see in a previous post to manually add the server to the BIVSettings.,cfg and i dont even see that file atall
 
Brilliant, i was always running from the desktop but running it from documents was the charm...Thanks!