Blue Iris UI3

Joined
Jul 17, 2018
Messages
14
Reaction score
2
Location
USA
If your recordings are not stored in BVR format, try installing this k-lite codec pack: Ninite K-Lite Codecs Unattended Silent Installer and Updater

Otherwise I have no idea why your recordings won't play. If you set up temporary remote access to your BI web server for me, I could log in and debug and see exactly why it fails. Send the login details to me in a conversation if you want me to try. <https://ipcamtalk.com/conversations/add?to=bp2008>
They are stored as MP4's as I have JPG's + plus a short clip emailed to myself when an alert is triggered. However it appears that BI will send me the clips as MP4 regardless what the recording format is. Let me change this over first to see if it addresses my issue.

Edit: K-Lite Codecs did not help either.

Edit 2: Switching to BVR format allows me to view the clips through ui3 now.
 
Last edited:

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
Ok, well Blue Iris can't read MP4 (or AVI) while they are still open for writing, and what you describe is what happens if you try to do so. Probably you could play older clips just fine, but not the newest one if it is still being recorded to.

BVR format has no such limitation, but has the downside that no other program can read it besides Blue Iris, so you must export any clips you want to share. It is a much wiser choice in my opinion since if an AVI or MP4 gets cut off early by power failure, system crash, etc, then you won't be able to play it without specialized recovery software. But I believe it is no problem with BVR format.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
bp2008/ui3
To install releases from github, download the release zip and extract it to Blue Iris 4/www, overwriting all files.

Version 45
  • Fixed problems encountered if the browser tab is inactive while the UI loads.
 

rkn

Young grasshopper
Joined
May 8, 2017
Messages
41
Reaction score
9
@bp2008

I modified the sample event mute button overrides script your provided so it now uses local storage. This solves the issue of it getting out of sync when muting event sounds, navigating away/closing tab and then re-opening UI3. Without this change it looked like event sounds are enabled when they're not.

However doing this I also wanted a way to track changes in the event volume setting without changing ui3.js. This avoids the remaining issue of muting event sounds, changing the volume back up and the mute button being out of sync (minor but a niggle). From a little digging I didn't find a nice clean way to do this, although still possible of course. Did I miss something and if not what are your thoughts on a BI_CustomEvent style listener on settings change, either per setting if that's easy to do are just on settings dialog close?

I could change ui3.js to incorporate event sounds muting without affecting the volume setting but you keep updating ui3.js so often :)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
Indeed I could probably provide a custom event handler for all settings changes, by creating a wrapper around the localStorage object (for that matter, a local-overrides script could do the same). But at this point it is easiest to just hook into the existing onChange handler for the ui3_eventSoundVolume setting.

Code:
var originalAdjustVolume = biSoundPlayer.AdjustVolume;
biSoundPlayer.AdjustVolume = function()
{
    originalAdjustVolume();
    console.log("Event Sound Volume Changed to " + settings.ui3_eventSoundVolume);
}
In UI2 basically all the functions were global and public, making it easy to hook into or replace damn-near anything. I designed UI3 differently, with a lot of private functions that can't be overridden this way, but this is one of the cases where you can still do it :)
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
@rkn the next UI3 release, version 46, will include a "SettingChanged" event which can be used like this:

Code:
BI_CustomEvent.AddListener("SettingChanged", function (args)
{
    console.log("Setting Changed: " + args.key + "=" + args.value + " (from " + args.oldValue + ")");
});
 

morrisky

Getting the hang of it
Joined
Jun 30, 2017
Messages
95
Reaction score
46
When viewing alerts in UI3, if I try to change the playback speed, the clip will jump minutes away from the current time. Any idea why this is happening?
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
When viewing alerts in UI3, if I try to change the playback speed, the clip will jump minutes away from the current time. Any idea why this is happening?
I'm guessing you have multiple alerts combined into one clip. There is some complex logic going on related to playing those correctly, and it might be failing in your specific configuration. I haven't been able to reproduce this problem on my own system. Can you send me temporary login details in a private message so that I can see this happening and maybe figure out the cause? <https://ipcamtalk.com/conversations/add?to=bp2008>
 

rkn

Young grasshopper
Joined
May 8, 2017
Messages
41
Reaction score
9
@bp2008

Thanks for the pointer as I hadn't noticed that volume handler. The new event handler is even better though, so thanks for that!
 

morrisky

Getting the hang of it
Joined
Jun 30, 2017
Messages
95
Reaction score
46
I'm guessing you have multiple alerts combined into one clip. There is some complex logic going on related to playing those correctly, and it might be failing in your specific configuration. I haven't been able to reproduce this problem on my own system. Can you send me temporary login details in a private message so that I can see this happening and maybe figure out the cause? <https://ipcamtalk.com/conversations/add?to=bp2008>
I was messing around with it and it started working correctly and now I can't reproduce the issue. I noticed it was only happening with alert playback though and not when viewing clips. I'll keep an eye out and see if it happens again.
 

morrisky

Getting the hang of it
Joined
Jun 30, 2017
Messages
95
Reaction score
46
@morrisky If the clip was still open for recording that could have messed with timing.
Yeah looks like it only happens during an actively recording clip. Pressing pause and then play also doesn't resume at the exact same time it looks like. Only skips around a few seconds or so now so guessing it just got more pronounced as the duration of the recording clip went on since the last alert was near the end of a 4 hour block.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
Yeah looks like it only happens during an actively recording clip. Pressing pause and then play also doesn't resume at the exact same time it looks like. Only skips around a few seconds or so now so guessing it just got more pronounced as the duration of the recording clip went on since the last alert was near the end of a 4 hour block.
Yeah. As you might imagine, it is difficult keeping track of where you're at in a clip when its length keeps changing. Clearly whatever I have UI3 doing now isn't always correct. This is a delicate and complex thing, so I don't know when I'll be able to fix it.
 

abraxas11

n3wb
Joined
Mar 23, 2016
Messages
12
Reaction score
2
Love UI3, great thing for BlueIris.
When the page first loads i would love to have the alerts appearing in the left column, with the live cameras also.
seems when i watch an alert i then have to close it and click on LiveView again to get the live cameras back.
i'm probably missing something, there, but i'd love to have the alerts appear when the page first loads. can't find anyting in the settings.
thanks!
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
UI3 remembers the last tab you were on. Close it while on the Alerts tab, and when you re-open it will be on the Alerts tab.

Closing the alert (X in the upper left of the video area) returns you to live view. No need to click the Live View tab.
 

rkn

Young grasshopper
Joined
May 8, 2017
Messages
41
Reaction score
9
Added "SettingChanged" custom event.
Many thanks for this.

On a different topic, the fairly recent policy change in Chrome for preventing auto playing audio in some cases is a pain for the way I use UI3. I often have motion and camera trigger sounds on and then miss the events (deliveries usually) due to audio being blocked as I just navigated to UI3 and didn't interact with the page:

upload_2018-7-19_21-41-37.png

Eventually I should pass the Chrome Media Engagement threshold but its not happened yet.

I only found out about this April 2018 change in Chrome quite recently myself and my first thought is whether UI3 should show a warning once the page is initialised if motion and camera triggers are enabled but won't work in practice until the user interacts.

Not trying to add to your work load, just highlighting the issue in case you've not seen it before.
 

bp2008

Staff member
Joined
Mar 10, 2014
Messages
12,674
Reaction score
14,020
Location
USA
I can't make autoplay fail. I even tried changing chrome://flags/#autoplay-policy and launching with --disable-features=AutoplayIgnoreWebAudio

I guess fixing this will have to wait :)
 

rkn

Young grasshopper
Joined
May 8, 2017
Messages
41
Reaction score
9
@rkn What makes the error message come up? Is it an event-triggered sound or live/recorded camera audio?
It's 100% reproducible for me on 3 different PCs all using Chrome 67 but live audio must be off as below. Steps:

(Note: I disabled my js extensions file and fully refreshed to take that out of the equation)
  • Configure UI3 to play sound on camera motion and triggers and disable live audio (this is key!), then close UI3 tab/Chrome.
  • Launch Chrome/new tab and navigate to UI3.
  • When an event triggered sound should play the audio play error as per my earlier post shows.
So basically if UI3 doesn't play any live sound initially then the error occurs on events sounds, otherwise not. So perhaps that allows a work around rather than just warning to interact as I suggested earlier.
 
Top