Blue Iris UI3

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Thanks. So webgl is unavailable in your latest chromium release. How unusual.

I wonder if the HTML5 player actually requires webgl or if that requirement only applies to the JavaScript player....
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Hey @Ssayer I don't have a convenient device with no webgl support, so if you wouldn't mind a little bit of advanced diagnostics, you can try hacking out the webgl feature check and see if the HTML5 video player still works to play H.264.

First, make sure in UI Settings > Video Player the H.264 player should be set to HTML5. Then open the ui3.js file in your Blue Iris 5/www/ui3 folder and go to about line 283 where it says

Code:
function detectWebGLContext()
{
    var canvas = document.createElement("canvas");
    var gl = canvas.getContext("webgl")
        || canvas.getContext("experimental-webgl");
    return gl && gl instanceof WebGLRenderingContext;
}
and just add a line saying return true; at the beginning of that function like this.

Code:
function detectWebGLContext()
{
   return true;
    var canvas = document.createElement("canvas");
    var gl = canvas.getContext("webgl")
        || canvas.getContext("experimental-webgl");
    return gl && gl instanceof WebGLRenderingContext;
}
Then CTRL+F5 to hard reload UI3 in chromium (this should override any cached ui3.js file) and see if the H.264 streams like 1080p work again. One way to be sure your change got loaded is to look in the "About" window, where the webgl warning should be gone.
 

Ssayer

BIT Beta Team
Joined
Jan 5, 2016
Messages
19,577
Reaction score
70,722
Location
SE Michigan USA
@bp2008: That fixed it. Just to re-affirm: Newest version of PI Os with newest version of Chromium... Sound working and proper cam opening now with all video streams as options.

Thanks much!
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Thanks @Ssayer. To fix this issue properly, I had to dig into several parts of the code which simply treated the JavaScript player preconditions as being preconditions for H.264 playback in general. From UI3-179 onward, this should no longer be a problem for you!
 

piconut

BIT Beta Team
Joined
Feb 17, 2015
Messages
176
Reaction score
63
Location
Austin, TX
I switched all my cameras and POE switch over to a second network card for security purposes and now I've recognized an issue with the time settings on all my cameras. I use the internal timestamp overlay from each camera instead of using an overlay from Blue Iris due to the large number of cameras I have and the CPU drain that the additional BI overlays would create. I noticed recently that many of my cameras have drifted off of the correct time, some by more than 60 seconds. When I logged into one of the cameras to check the NTP time settings, I realized that each camera can no longer access any of the public time servers. (duh, that was the point) So I Googled how to setup a local NTP server on the same Windows 10 computer where Blue Iris is hosted and think that I have successfully setup a local server. The problem is that when I test the connection from any of the cameras to that local NTP server, it doesn't work. Is there something I'm missing here? When you have your IP cams segmented off on a private (secondary) LAN, how do you configure them to get NTP time updates?
 

wittaj

IPCT Contributor
Joined
Apr 28, 2019
Messages
24,428
Reaction score
47,549
Location
USA
I switched all my cameras and POE switch over to a second network card for security purposes and now I've recognized an issue with the time settings on all my cameras. I use the internal timestamp overlay from each camera instead of using an overlay from Blue Iris due to the large number of cameras I have and the CPU drain that the additional BI overlays would create. I noticed recently that many of my cameras have drifted off of the correct time, some by more than 60 seconds. When I logged into one of the cameras to check the NTP time settings, I realized that each camera can no longer access any of the public time servers. (duh, that was the point) So I Googled how to setup a local NTP server on the same Windows 10 computer where Blue Iris is hosted and think that I have successfully setup a local server. The problem is that when I test the connection from any of the cameras to that local NTP server, it doesn't work. Is there something I'm missing here? When you have your IP cams segmented off on a private (secondary) LAN, how do you configure them to get NTP time updates?
Try this:

 

Mike A.

Known around here
Joined
May 6, 2017
Messages
3,825
Reaction score
6,377
Not sure how you've segregated things or what NTP server you used and how set up, but speaking generally you need:

  • The correct IP for the time server set up on the cams.
  • A functioning network path to the server.
  • The server set up and functioning properly.

Double check the first. Should point to the IP of the BI/NTP server using port 123.

Make sure that network is set up properly to let the cameras access the BI/NTP server. Beyond the network itself you may also need to let in-coming traffic on port 123 through the firewall on the BI/NTP server. Take down the firewall on the server and test from cam to check that quickly.

Don't know what NTP server you used or how set up. Search for NetTime. That one is relatively easy to get going and many here use it. May need to disable Window's own time server if it's running.
 

piconut

BIT Beta Team
Joined
Feb 17, 2015
Messages
176
Reaction score
63
Location
Austin, TX
So I got it all working thanks to @wittaj and @Mike A. I originally had NetTime installed but didn't have the option checked to allow other computers to sync to it, and in my troubleshooting I had disabled NetTime. On top of that, I still had the Windows Time service running. In addition to those issues, I was using the IP of the network card that was tied to the router side, not the BI/POE switch side. Fortunately I had a second computer also running Blue Iris which didn't have NetTime installed. Once I installed that and configured it properly on the second computer, those cameras updated their time just fine. So I re-enabled NetTime on the first BI server and set the NTP IP to the LAN bound to the POE switch, then I disabled Windows Time and made sure NetTime was configured to allow other computers to sync to it and those things solved the problems. Thanks again for all of your help!

Edit: Oh, and I had to add a rule in the Firewall to allow UDP port 123 incoming!
 

gotitmadecij

Young grasshopper
Joined
Feb 25, 2016
Messages
34
Reaction score
11
Unable to perform mass deletions from UI3 alerts ,since several updates ago....
can do individual updates fine .. I used to could, hold "shift" and select all the alerts I wanted to delete, then press delete and they would be gone.. now they stay

Any suggestions?
 

gwminor48

Known around here
Joined
Jul 16, 2015
Messages
3,622
Reaction score
6,897
Location
Texas
Unable to perform mass deletions from UI3 alerts ,since several updates ago....
can do individual updates fine .. I used to could, hold "shift" and select all the alerts I wanted to delete, then press delete and they would be gone.. now they stay

Any suggestions?
Hmmm, I must have been doing something wrong. I would like to be able to do that but I never had any luck doing it.
 

gotitmadecij

Young grasshopper
Joined
Feb 25, 2016
Messages
34
Reaction score
11
Hmmm, I must have been doing something wrong. I would like to be able to do that but I never had any luck doing it.
always able to, until recently I could press and hold shift and the first alert clip move mouse to the last , release shift ,right click and hit delete , would be asked if I wanted to delete XX alerts (yes/no) hit yes and now I hit yes and it just unselects and the alerts are still there.
 

MikeLud1

IPCT Contributor
Joined
Apr 5, 2017
Messages
2,141
Reaction score
4,118
Location
Brooklyn, NY
I found a great way to gauge how much noise in your image using Stats for Nerds. You can use the VIdeo Bit Rate to gauge how much noise is in your image. The samples below is from one of my Dahua IPC-T5442TM-AS showing how sharpness adds noise.

Sharpness set at 20: low noise low Video Bit Rate 7.1 Mbps
1634522733179.png
Sharpness set at 50: high noise high Video Bit Rate 13.8 Mbps
1634523205710.png
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Hi everyone. I normally don't bother talking about UI3 releases here anymore, but I just released UI3-181 with a new video player option. It uses "WebCodecs" which is a brand new web API that gives low-level access to the video decoders, just like I've wanted for only about a decade. It is currently only available in Chrome/Edge and related browsers, but should be coming to Firefox later.

1634940402272.png



The only problem is, the Chrome developers decided to restrict its use to only web sites that are hosted with HTTPS. This is impractical for Blue Iris because HTTPS isn't supported natively by the web server yet. But even if and when HTTPS support is baked in to Blue Iris, you still have to deal with certificate trust issues. That means either you install and regularly renew a trusted TLS certificate, which requires internet access and port forwarding, otherwise you use a self-signed certificate and have to click through a browser warning page every day on every device you use for UI3. Both of these are a major nuisance, the latter of which would create a lot of confusion among users who haven't encountered the "untrusted certificate" warnings before.

So I opened an issue with the team that created the WebCodecs API, asking them to remove the HTTPS requirement. But I am worried they will not care about a bunch of lunatics that want to use unencrypted HTTP for their own local web servers. If any Chrome/Edge/etc users out there have a github account and want to be able to use the best performing video player in UI3, please leave a comment in the issue thread to show that people want this: Here is the issue thread
 
Last edited:

hikky_b

Pulling my weight
Joined
Nov 24, 2019
Messages
156
Reaction score
168
Location
London
Hi everyone. I normally don't bother talking about UI3 releases here anymore, but I just released UI3-181 with a new video player option. It uses "WebCodecs" which is a brand new web API that gives low-level access to the video decoders, just like I've wanted for only about a decade. It is currently only available in Chrome/Edge and related browsers, but should be coming to Firefox later.

The only problem is, the Chrome developers decided to restrict its use to only web sites that are hosted with HTTPS. This is impractical for Blue Iris because HTTPS isn't supported natively by the web server yet. But even if and when HTTPS support is baked in to Blue Iris, you still have to deal with certificate trust issues. That means either you install and regularly renew a trusted TLS certificate, which requires internet access and port forwarding, otherwise you use a self-signed certificate and have to click through a browser warning page every day on every device you use for UI3. Both of these are a major nuisance, the latter of which would create a lot of confusion among users who haven't encountered the "untrusted certificate" warnings before.

So I opened an issue with the team that created the WebCodecs API, asking them to remove the HTTPS requirement. But I am worried they will not care about a bunch of lunatics that want to use unencrypted HTTP for their own local web servers. If any Chrome/Edge/etc users out there have a github account and want to be able to use the best performing video player in UI3, please leave a comment in the issue thread to show that people want this: Here is the issue thread
Does this apply to those running a reverse proxy and using HTTPS between browser and proxy server? It might be an obvious NO but I'm not entirely sure...
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Does this apply to those running a reverse proxy and using HTTPS between browser and proxy server? It might be an obvious NO but I'm not entirely sure...
It does apply. Currently a reverse proxy is the only way to use HTTPS with Blue Iris. That can be changed, but there will always be the nuisance of certificates.
 

hikky_b

Pulling my weight
Joined
Nov 24, 2019
Messages
156
Reaction score
168
Location
London
It does apply. Currently a reverse proxy is the only way to use HTTPS with Blue Iris. That can be changed, but there will always be the nuisance of certificates.
Brilliant - I will download and test now. Are there any particular benefits from a users point of view? Stability?
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,666
Reaction score
14,005
Location
USA
Brilliant - I will download and test now. Are there any particular benefits from a users point of view? Stability?
Its efficiency is on par with other hardware accelerated video players. The thing that differentiates it is slightly lower latency (less video delay) because UI3 is allowed to precisely control the frame timing. The next best player is HTML5, where latency of 3 to 5 frames is pretty common. That still isn't bad for our purposes, but it can be better, and that is where WebCodecs is most beneficial to a user. Lower latency means slightly less loading time when switching streams, which includes seeking in clips.

(speaking of clips, I notice the WebCodecs player isn't handling clip playback quite right; I'll fix that for UI3-182)

Currently I have only tested WebCodecs on three machines. One of them was a virtual machine in a system without a real GPU, and the WebCodecs player performed very badly in that VM even though the HTML5 player was fine. This is something I would expect to be ironed out as more and more developers begin using it and reporting bugs.


PlayerEfficiencyLatency (video delay)StabilityNotes
WebCodecs1.8% - 3.6% CPU
23% GPU
Very low
1634947127474.png
Unknown* Only available if UI3 is served via HTTPS.
* Uses brand new API that is not widely used
yet, so stability is unknown.
HTML51.9% - 3.3% CPU
23% GPU
Medium
1634947194760.png
Good* Rarely spams with error message when
ending a stream.
* Can show black frame if paused
immediately after playback begins.
JavaScript19.2% - 22.2% CPU
43% GPU
Low
1634947687429.png
ExcellentWorks in nearly any modern browser.
Cannot use hardware acceleration.
NaCl2% - 3.6% CPU
23% GPU
Very low
1634947773066.png
Unknown* Chrome only.
* Requires Native Client to be
enabled in chrome:/flags,
so it is very rarely used.
* Renders video in Limited RGB
colorspace which means lower
contrast than normal.

The HTML5 player is not really unstable (it is super rare for it to actually crash outright), but it does have a few glitches which I have not seen with other players, noted in the Notes section above.
 
Top