Blue Iris UI3

Timeline tab playback usually skips the first few seconds of every clip (which contains the actual important parts, making it useless). Non-Timeline playback is normal. Any ideas why?
 
Timeline tab playback usually skips the first few seconds of every clip (which contains the actual important parts, making it useless). Non-Timeline playback is normal. Any ideas why?

Yes. I agree it is very frustrating. Blue Iris tries to produce the timeline video stream at a steady 30 FPS. In order to achieve that without lots of pausing and stuttering, the video clips get loaded asynchronously. That is to say, the timeline playhead continues to move ahead steadily while clips load in the background.

Only Ken can do anything to change this. Blue Iris would need to look ahead and preload clips that are due to open soon. But that would likely be rather difficult to do well so I understand why Ken hasn't done that yet. You could let BI support know it is something you want.

Related to this, clips located on an SSD load significantly faster than clips on a mechanical hard drive. I use an old enterprise grade SSD from ebay in my continuous recording BI box so that the timeline is massively more performant for my most recent day or two of video. Fundamentally the clips are still loading asynchronously so it does not completely solve the problem, but it sure helps.
 
There's an interesting story about this issue with asynchronous clip loading actually. When I was originally working with Ken to implement the timeline in UI3, the JPEG frames used for seeking (clicking and dragging the timeline) usually turned out to be blank because Blue Iris would not wait for clips to load before delivering each JPEG frame. It is exactly the same problem that causes clips to miss the first few frames during normal timeline playback. Well this meant seeking was basically unusable. Ken had to make it so that a jpeg frame requested at 0x playback speed would not be delivered until all the clips had opened, seeked to the correct frame, and rendered it. Consequentially, on some systems with many concurrent clips and few substreams, it can take multiple seconds to load each frame while seeking on the timeline. This is the activity where it helps the most to have all the video on an SSD.
 
I have run into an issue I can't seem to figure out how to solve. I am not sure this is a UI3 issue, but it seems to be related. I say that because this issue occurs locally in the BI console clip viewer at times and I believe that UI3 is just showing that oddity, but I can make the issue go away in BI clip viewer console but UI3 still shows the problem. The issue is that I have a new camera with a resolution of 5120 x 1440 (1920 x 536 on the sub stream) which is a 32:9 aspect ratio. It is the Hikvision DS-2CD2387G2P-LSU/SL and it integrates close to 100% properly into BI & UI3. The camera displays properly live in BI/UI3, the recordings are recorded and play back properly, the timeline displays the video properly as well and the alert images are proper. The oddity is when you go to watch a clip for an alert (again this occurs in BI as well as in UI3). The clip will play but BI stretches the video playing to fill the viewer, and of course that stretches the 32:9 camera badly vertically to fill the clip viewer screen. It seems most often to want to output 1920 x 1080 resolution, no matter what the video recording actually is. Am I missing something somewhere to keep the clip viewer from stretching the video?

I have tried a large combination of settings on the camera and BI and I have managed to get the clip viewer in BI to show the proper aspect ratio if I tell it to always use the sub stream for clip playback but the main stream always gets stretched. I have iterated thorough having the sub stream utilized, no sub stream utilized, various anamorphic resolutions in BI, 264 and 265 encoding, etc. When it uses the sub stream and plays back properly in BI, UI3 will not follow suit. Perhaps, UI3 is always using the main stream and as BI won't display that one properly, UI3 won't either. It would be perhaps preferred to use the main stream for clip playback but getting the sub stream to play in UI3 is an OK solution. I don't know enough about how BI chooses to show things in the clip viewer and how UI3 chooses to display things to know where else to look to correct this issue.

Interestingly, if I set the main stream profile in BI to be camera main resolution stream (5120 x 1440), it plays proper in the BI clip viewer, but that same stream will get stretched by BI if you do not tell it to use the sub stream in the BI clip viewer.
 
Last edited:
@gwithers I can't think of anything that would cause the behavior you describe. I have the Annke version of the same camera using main and sub streams and I don't have the same problems.

I have some recommendations:
1. In UI3, right click the video and open Stats for nerds. This will tell you the resolution being streamed, native resolution, and viewport size, which should provide clues about what is going on.
2. Try different streaming profiles in UI3. 8K, 4K, 4MP, 2MP, etc and note any effects on stream resolution in Stats for nerds, and on the aspect ratio. If you choose a profile that is not larger than the sub stream resolution (e.g. 480p) then Blue Iris will deliver video from the sub stream.
3. Try UI3 on a very different device (to rule out driver issues).
4. Try a different H.264 player in UI3 (main menu > UI Settings > Video Player > H.264 Player).
 
@gwithers I can't think of anything that would cause the behavior you describe. I have the Annke version of the same camera using main and sub streams and I don't have the same problems.

I have some recommendations:
1. In UI3, right click the video and open Stats for nerds. This will tell you the resolution being streamed, native resolution, and viewport size, which should provide clues about what is going on.
2. Try different streaming profiles in UI3. 8K, 4K, 4MP, 2MP, etc and note any effects on stream resolution in Stats for nerds, and on the aspect ratio. If you choose a profile that is not larger than the sub stream resolution (e.g. 480p) then Blue Iris will deliver video from the sub stream.
3. Try UI3 on a very different device (to rule out driver issues).
4. Try a different H.264 player in UI3 (main menu > UI Settings > Video Player > H.264 Player).

Thanks for the input. I have tried a number of these things previously and I have done a few more based on your recommendations. Here are the results.

1.) The resolution of the steam and the clip is 5120 x 1440 when viewing the recording directly via the clip or on the timeline. When viewing the alert clip in UI3 it always says the stream resolution is 1920 x 1080 and the native resolution is 1920 x 1080. I'm not sure why. So, I went into the Stream 0 configuration and found that the default is to resize the output frame to 1920 x 1080 but it is supposed to retain the aspect ratio within the frame. It doesn't do that. So I deselected the resize output frame option but yet the output frame is still stuck at 1080 x 1920 in UI3. Even on new alerts.

2.) I have tried nearly all combinations of stream profiles and player codec with no change on the issue. I have also cleared the cache on the browser between changes and tried this on multiple systems with the same results (stretched video and native clip resolution stuck at 1920 x 1080. The sub stream resolution is set at, and BI recognizes it properly at 1904 x 536 yet BI/UI3 is still showing the stream resolution and the native resolution as 1920 x 1080. Even though it is set at 480P and that is lower than the sub stream, nothing has changed.

3.) I tried on several Windows devices with Chrome and Edge (Android as well) and they all suffered from the same stretch or a misreporting of the native stream resolution at 1920 x 1080.

4.) No changes between selecting the HTML5 or WebCodec player (or Javascript) although some of the stream profiles and player codec don't like each other and won't play the new camera stream.

I can't seem to figure out why the alert clips always report as a native resolution of 1920 x 1080. I am assuming this misreporting is why the BI and UI3 players play the video stretched like it does as it thinks the video is this resolution. I tried recreating the camera as well and started fresh but no improvement. I will continue to hammer it to find a solution, but I am running out of places to look.
 
  • Like
Reactions: bp2008
So you get the bad behavior when you're using "Alerts" in UI3, but good behavior when using "All clips" in UI3? It sounds like Blue Iris wrote the wrong resolution to its database for the alerts for some reason. But if you created a new camera in Blue Iris and it still happens, then I don't know what else to do. What version of Blue Iris are you running?


4.) No changes between selecting the HTML5 or WebCodec player (or Javascript) although some of the stream profiles and player codec don't like each other and won't play the new camera stream.

Yes, some systems may have trouble playing this camera's native resolution via some players. The easiest solution on those systems is to use a 4K or smaller stream in UI3 as this will limit the width to 3840 pixels.
 
  • Like
Reactions: actran
So you get the bad behavior when you're using "Alerts" in UI3, but good behavior when using "All clips" in UI3? It sounds like Blue Iris wrote the wrong resolution to its database for the alerts for some reason. But if you created a new camera in Blue Iris and it still happens, then I don't know what else to do. What version of Blue Iris are you running?




Yes, some systems may have trouble playing this camera's native resolution via some players. The easiest solution on those systems is to use a 4K or smaller stream in UI3 as this will limit the width to 3840 pixels.

That is correct. If I play video from the "All Clips" in UI3, all is well, but it is broken when played through the alert (via the 1920 x 1080 resolution designation) . Yeah, the new camera didn't help either. I don't know why it is always thinking it should be 1920 x 1080. I am stumped.
 
A bit more info after some more troubleshooting. Perhaps this info will help someone else in the future. I spun up a few VMs and did some testing to see what fixes and what breaks this particular 32:9 camera as I noted previously. I spun up a fresh install of BI and added just the problematic camera. Everything works as it should. Import my current config into this install and that breaks the camera again. Try another fresh install and only import the cameras into the install and add the problematic camera. In this scenario, everything still works as it should. So, I spun up another fresh install and this time I grabbed a BI registry backup from a couple weeks ago and imported those settings and then added the problematic camera. Everything works properly in this scenario as well. So it would appear something in my current production BI setup is causing the issue, but I can't seem to identify what it is. It would also appear that a fresh install, and restore of the settings from a few weeks back and adding the new camera will make everything work properly. This feels like something got messed up during the testing phase for this new camera and the problem I introduced has stuck in the configuration somewhere.
 
This feels like something got messed up during the testing phase for this new camera and the problem I introduced has stuck in the configuration somewhere.

Good troubleshooting. I'd be curious to know what the root cause is if you ever figure it out.
 
Hello everyone,

I'd like to bring to your attention an issue I've encountered while using the PTZ (Pan-Tilt-Zoom) controls on my iPhone 14 in conjunction with the UI3 interface. I believe I may have come across a bug that affects the functionality of these controls, and I wanted to share my experience here for the community's awareness.

To provide some context, I have a set of PTZ cameras that I usually manage seamlessly using the PTZ Controls feature in the Windows App, as well as through the desktop UI3 interface. Both of these methods allow me to easily manipulate the camera's movement using the provided control buttons.

However, I've noticed a peculiar behavior when attempting to use the PTZ controls through the UI3 interface on my iPhone 14. This issue becomes apparent when I access the UI3 interface from an external network via an external URL. In this scenario, the PTZ controls for my cameras become disabled, despite using the same administrator user credentials.

What's interesting is that this behavior is not replicated when I access the UI3 interface from within my home network using an internal IP address. In that case, the PTZ controls remain enabled and fully functional. This discrepancy suggests that when UI3 detects an external IP address, it automatically disables the PTZ controls for the cameras associated with my account.

I'd like to emphasize that this behavior is unique to my iPhone 14 running iOS 16. When I access UI3 from my iMac, using Safari on the latest version, the PTZ controls consistently remain enabled as expected, regardless of whether I'm accessing the interface from within my home network or from an external network.

My reason for reaching out to this community is to inquire whether this behavior is intentional, perhaps as a design choice, or if there might be a configuration option that I can examine to rectify this issue. Any insights, suggestions, or solutions that fellow members could provide would be greatly appreciated.

Thank you all for your time and assistance.
 
  • Like
Reactions: looney2ns
This issue becomes apparent when I access the UI3 interface from an external network via an external URL. In this scenario, the PTZ controls for my cameras become disabled, despite using the same administrator user credentials.

My reason for reaching out to this community is to inquire whether this behavior is intentional, perhaps as a design choice, or if there might be a configuration option that I can examine to rectify this issue. Any insights, suggestions, or solutions that fellow members could provide would be greatly appreciated.

Hello!

This is certainly not intentional. Most likely, you have accidentally disabled the PTZ controls. While viewing a PTZ camera, try a long press on any of the PTZ preset buttons, and see if the top item in the context menu is to enable the controls. If this doesn't work, then I suggest you go to UI Settings (via the hamburger menu in upper right) and press the Reset button in General Settings.
 
Hello!

This is certainly not intentional. Most likely, you have accidentally disabled the PTZ controls. While viewing a PTZ camera, try a long press on any of the PTZ preset buttons, and see if the top item in the context menu is to enable the controls. If this doesn't work, then I suggest you go to UI Settings (via the hamburger menu in upper right) and press the Reset button in General Settings.

The first trick made it !!! Thank you so much!
 
  • Like
Reactions: TonyR
Hi All,

I'd like to add an additional custom profile to UI3 or modify one of the existing profiles with a .js override file. Does anyone already have a template for this or know where I could find one?

UI3 Help
 
Hi All,

I'd like to add an additional custom profile to UI3 or modify one of the existing profiles with a .js override file. Does anyone already have a template for this or know where I could find one?

UI3 Help

Assuming you are talking about a streaming profile (a.k.a. Streaming Quality dropdown list item), here are the steps:

Step 1. Add a custom streaming profile using the user interface.
Step 2. Download a ui3-local-overrides.js file via the link at the bottom of UI Settings (requires admin). This file contains a copy of all your current settings, which includes the streaming profiles.
Step 3. (optional) Open the ui3-local-overrides.js file in your favorite text editor and delete everything except the line at the bottom that starts with OverrideDefaultSetting("ui3_streamingProfileArray",
Step 4. Move the ui3-local-overrides.js file to the ui3 subdirectory of your Blue Iris installation's web root directory (www).
 
  • Like
Reactions: pbnjtv and TonyR
Assuming you are talking about a streaming profile (a.k.a. Streaming Quality dropdown list item), here are the steps:

Step 1. Add a custom streaming profile using the user interface.
Step 2. Download a ui3-local-overrides.js file via the link at the bottom of UI Settings (requires admin). This file contains a copy of all your current settings, which includes the streaming profiles.
Step 3. (optional) Open the ui3-local-overrides.js file in your favorite text editor and delete everything except the line at the bottom that starts with OverrideDefaultSetting("ui3_streamingProfileArray",
Step 4. Move the ui3-local-overrides.js file to the ui3 subdirectory of your Blue Iris installation's web root directory (www).
That is very helpful, thank you!
 
  • Like
Reactions: bp2008
Hi - I am experimenting with showing my cams on a tablet in landscape mode - preferably using the UI3 webpage as it seems to be the only way to get a low latency view compared to other methods.

There are old posts/blogs describing how you can get individual cams to show up via URL eg. which works "okay".

Is there any way to turn off the controls (full screen, streaming profile selection, blah, blah) on the view? I want to embed these as iframes somewhere else and want my own event handlers which would bring up a higher resolution (again via UI3 with a higher streaming profile).

reference: Home Assistant - Better Blue Iris Integration using Lovelace iframes

thanks
 
Is there any way to turn off the controls (full screen, streaming profile selection, blah, blah) on the view? I want to embed these as iframes somewhere else and want my own event handlers which would bring up a higher resolution (again via UI3 with a higher streaming profile).

There is no built-in way to turn off the controls at the bottom of the video player. The auto-hide behavior is not sufficient? By default those controls disappear when the mouse pointer is outside of the video player OR when the mouse pointer is in the video player but not in the control bar, and not moving.
 
  • Like
Reactions: looney2ns
There is no built-in way to turn off the controls at the bottom of the video player. The auto-hide behavior is not sufficient? By default those controls disappear when the mouse pointer is outside of the video player OR when the mouse pointer is in the video player but not in the control bar, and not moving.

It's acceptable as starter, absolutely. I'm thinking the time when the kids/visitors start touching things they're not meant to.

I will check if a css mask actually traps the touch/click in the HA component, so it is possible that you never see it.