Blue Iris UI3

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
Hi,
I've been using UI3 with BI4 for several years now, and recently encountered this persistent error when accessing via remote IP on multiple browsers/devices:


Specific error in my case:
View attachment 174065

UI3 works fine with local IP, and firewall isn't the issue as the server is responding, just badly. I've tried updating UI3 to the latest recommend UI3-77, to no avail. Is my Javascript install messed up? If so, what's the easiest way to fix? Thanks
This will likely be happening because of a problem loading the loginScripts.js file from the Blue Iris 4\www\applet folder.

First, verify that the file looks correct by comparing it with the original on github:
Then, open your browser's developer tools via ctrl + shift + i, and go to the "Network" tab. Then reload the login page and use the Network tab to inspect the loginScripts.js response. It is expected to have a response status code of 200 ("200 OK") and if you inspect the response text it should match the file on disk. Your browser may auto-format the javascript text in there, but there should be a button like this 1696516750205.pngbelow the text viewer which you can click to toggle the formatting. Also look at the developer tools "Console" tab and note any text that got output there.
 

mjjue

n3wb
Joined
Oct 5, 2023
Messages
2
Reaction score
0
Location
Oregon
This will likely be happening because of a problem loading the loginScripts.js file from the Blue Iris 4\www\applet folder.

First, verify that the file looks correct by comparing it with the original on github:
Then, open your browser's developer tools via ctrl + shift + i, and go to the "Network" tab. Then reload the login page and use the Network tab to inspect the loginScripts.js response. It is expected to have a response status code of 200 ("200 OK") and if you inspect the response text it should match the file on disk. Your browser may auto-format the javascript text in there, but there should be a button like this View attachment 174084below the text viewer which you can click to toggle the formatting. Also look at the developer tools "Console" tab and note any text that got output there.
Thanks. While that wasn't the problem, it got me on the right path. The error was misleading, because it's apparently what you normally get when you try to use WAN address while on the LAN (which I'm not sure I'd ever tried before). I noticed using the browser network trace that under this apparently invalid condition, there are multiple login.htm?page=%2F retries before it gets to invoking the script, where it calls loginScripts.js before loginStyles.js instead of after in the case of a good login, causing the error.

When I remembered to instead move from my LAN PC to trying my phone w/o wifi, I found it was just that somehow my bluepris.pro (license key) link was no longer working, likely when my ISP IP address changed. When I entered the updated WAN IP address directly instead, UI3 finally worked and also somehow had the effect of fixing the broken blueiris.pro redirect. Maybe this will help someone else encountering the same in the future.

Thanks!
 

BrownChiLD

Young grasshopper
Joined
Jul 5, 2022
Messages
37
Reaction score
9
Location
Philippines
hi
Is it possible to give open access to anyone on specific cameras only? That's something I would really really like.

Say I have several cameras on my system and I want to openly share one outdoor bird camera to friends w/o the need for them to login.. would that be possible?
 

piconut

BIT Beta Team
Joined
Feb 17, 2015
Messages
176
Reaction score
63
Location
Austin, TX
hi
Is it possible to give open access to anyone on specific cameras only? That's something I would really really like.

Say I have several cameras on my system and I want to openly share one outdoor bird camera to friends w/o the need for them to login.. would that be possible?
You could stream it to YouTube and then make that YT channel unlisted so that only people you send the link to could access it.
If you're asking whether it is possible to share a single camera on your LAN to any user then you could make a camera group from one camera and then give the anonymous account access to only that group (essentially that one camera).
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
hi
Is it possible to give open access to anyone on specific cameras only? That's something I would really really like.

Say I have several cameras on my system and I want to openly share one outdoor bird camera to friends w/o the need for them to login.. would that be possible?
Yes, that is possible, but in order to allow people to connect over the internet and have access without logging in, you'll need to disable the authentication requirement via Blue Iris Settings > Web Server > Advanced. Then when anyone connects, they will be using the "Anonymous" user account (Blue Iris Settings > Users) and you can limit the Anonymous user to any one or more camera groups. You can also create a user for yourself and access it by visiting the login.htm page and entering the credentials. UI3's main menu has a "Log Out" button that will send you to the login page so you don't need to bookmark it separately.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
@MikeLud1 Yup, I got notifications about that too.

As nice as it is to have a workaround, it is simply not acceptable to require users to do that in order to use the WebCodecs player when there are other players that don't require such an effort to use.

Besides, I find that WebCodecs is less robust than Media Source Extensions (the API used by UI3's HTML5 player). For example on my system here with Nvidia graphics, WebCodecs fails to decode a 5120x1440 (dual 4MP sensor cam) video unless I configure the video decoder to not use hardware acceleration. When hardware acceleration is used, it complains that there was no keyframe. The HTML5 player, by comparison, is automatically falling back to software decoding without UI3 needing to do anything, and for some reason the HTML5 player's software decoder appears to be substantially more efficient than WebCodecs's software decoder.
 
Joined
Jun 14, 2023
Messages
13
Reaction score
7
Location
Usa
Looks like webcodecs is working in ios17 , working well too. Always had issues with ios 16 html5 starting to lag with orange hourglass l javascript would work better but never defaulted on ipad As it requests the desktop version of a site.

anyway to default to webcodecs then fallback to jS on ios devices?
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
anyway to default to webcodecs then fallback to jS on ios devices?
I could code a UI3 update so that WebCodecs is chosen on iOS 17+ if the H.264 player is set to Automatic. Before I do that, can anyone else confirm that UI3's WebCodecs player is behaving better than the HTML5 player on iOS 17?

I'd also like to know if the HTML5 player is working properly on iOS 17. It was not in iOS 16.4.
 

BrownChiLD

Young grasshopper
Joined
Jul 5, 2022
Messages
37
Reaction score
9
Location
Philippines
Updated to Blue Iris version: 5.7.9.12 and lost audio on live and playback. The volume icon and control isn't even showing up. Anyone else experiencing this?
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
Updated to Blue Iris version: 5.7.9.12 and lost audio on live and playback. The volume icon and control isn't even showing up. Anyone else experiencing this?
You changed something else to cause audio to be unavailable. The most common cause for the volume control being missing is that your selected streaming quality is one of the "Jpeg" modes. Audio is only available when streaming H.264 video (such as "1080p").
 

hikky_b

Pulling my weight
Joined
Nov 24, 2019
Messages
156
Reaction score
168
Location
London
I could code a UI3 update so that WebCodecs is chosen on iOS 17+ if the H.264 player is set to Automatic. Before I do that, can anyone else confirm that UI3's WebCodecs player is behaving better than the HTML5 player on iOS 17?

I'd also like to know if the HTML5 player is working properly on iOS 17. It was not in iOS 16.4.
Running BI 5.8.0.8 / UI3 v254 / iPads iOS17

WebCodecs is by far the best/performant I've ever previously been able to configure. Before I was defaulting to the JS player which was more reliable than the HTML5 player and didn't tend to delay as much.

D2W turned on for single cam views / groups at 1080p. Have left up D2W stream (8mbps) for 30 mins now and no errors (was getting out of memory with JS) and player delay hovering between 0-80ms.

Tapping from groups into main streams is fast.

Playback of clips / timeline all work excellent too.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
Running BI 5.8.0.8 / UI3 v254 / iPads iOS17

WebCodecs is by far the best/performant I've ever previously been able to configure. Before I was defaulting to the JS player which was more reliable than the HTML5 player and didn't tend to delay as much.

D2W turned on for single cam views / groups at 1080p. Have left up D2W stream (8mbps) for 30 mins now and no errors (was getting out of memory with JS) and player delay hovering between 0-80ms.

Tapping from groups into main streams is fast.

Playback of clips / timeline all work excellent too.
Thanks for this info. Does the HTML5 player work in that OS version?
 

hikky_b

Pulling my weight
Joined
Nov 24, 2019
Messages
156
Reaction score
168
Location
London
Thanks for this info. Does the HTML5 player work in that OS version?
Yes the HTML5 player does work - most of the time. But with much higher player delays.

Admittedly my testing with the HTML5 player has been limited, but sometimes when changing to single streams from groups (or auto-maximise) it would freeze and not resume until tapping out of the single stream view.

The player delay is quite a bit higher and less consistent. Player delay will grow over time until it hits the max delay set on UI3 and refreshes.

Sometimes when a camera was triggered with auto-maximse on - it would initially show the live single-stream view but then 'skip' back, say five seconds earlier. You'd basically be seeing the same trigger repeated twice.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
Sometimes when a camera was triggered with auto-maximse on - it would initially show the live single-stream view but then 'skip' back, say five seconds earlier. You'd basically be seeing the same trigger repeated twice.
Weird. Based on your feedback, I'm adjusting the "Automatic" H.264 player selection logic for iOS 17 to prefer WebCodecs, then JavaScript, then HTML5 only as a last resort if the other two players are unavailable for some reason (which should not happen, but you never know). This will be in UI3-255 when that releases.
 

hikky_b

Pulling my weight
Joined
Nov 24, 2019
Messages
156
Reaction score
168
Location
London
Weird. Based on your feedback, I'm adjusting the "Automatic" H.264 player selection logic for iOS 17 to prefer WebCodecs, then JavaScript, then HTML5 only as a last resort if the other two players are unavailable for some reason (which should not happen, but you never know). This will be in UI3-255 when that releases.
Thanks for those changes - and WebCodecs support! The JS player was previously the best but resource intensive. If I wasn't getting out of memory errors, it would be draining iPad batteries even when they were on charge. Will keep monitoring battery life using web codecs but so far it's looking good.
 

piconut

BIT Beta Team
Joined
Feb 17, 2015
Messages
176
Reaction score
63
Location
Austin, TX
@actran You can use this: $("#changeGroupButton").removeClass("showOnlyOnTimeline")

I will put it into the sample override scripts. Local Overrides Sample: Show the "Change Group" button in playback controls on all tabs of the UI
I tried to add this "change group button" override script to UI3 (it is the only override script I have) and I cannot get it to work. I've tried multiple browsers and a reboot. The BI version I'm running is 5.6.1.3 and the ui_version is 223. Is the reason it won't work is because my version of BI is too old? ...and if so, does anyone know which version of BI first worked with this script? I think I have version 5.7.6.8 downloaded but I haven't installed it yet as I'm always afraid of causing issues due to an unstable upgrade.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,678
Reaction score
14,032
Location
USA
@piconut But you should also be able to manually update UI3 to the latest version with minimal repercussions and use the original override script. The new "search" box over the clip list won't work but otherwise most things should still be fine.
 
Top