I appreciate the quick reply and want to thank you for UI3, its the sole reason I use Blue Iris and so much better than dealing with the NVRs like I used to.This could be tough to figure out. Clicking the orange clock icon should pop up a message explaining where the delay came from, but you can also learn by looking at the "Stats for nerds" panel.
Right click the video in UI3 and open the "Stats for nerds" panel. This will have graphs including Network Delay and Player Delay. If Network Delay grows, it means the video timestamps being fed into UI3 by Blue Iris are not increasing at the expected rate. That would typically be because the network can't handle the stream (usually wifi's fault), but in your case it sounds like your network is fine so I doubt this is the problem. It could also go up due to a major performance problem that is not strictly network related, or due to software bugs.
Player Delay really is just the amount of video that is currently buffered and not yet played and it will heavily correlate with the Delayed Frames graph just below it. If Player Delay grows, that means the device you're running UI3 on is unable to play the video as fast as it comes in.
Also have a look at the FPS meter in the status area of UI3, and see if that meets expectations. The FPS bar should ideally be full, all the way to the right, otherwise it indicates a slowdown of some kind is occurring. A loss of FPS doesn't necessarily mean a delay is happening. Usually it just means Blue Iris is unable to encode all the frames in realtime so it is dropping some in order to avoid letting a delay build up. It is sadly normal for the FPS to be lower than the source video due to Blue Iris transcoding the video in realtime to send it to UI3.
Another data point to look at is to see which H.264 player you're using. Open UI3's main menu > UI Settings > Video Player, and see what the current H.264 player is. On most systems it will be HTML5. Try changing it to another option. JavaScript is the only alternative on most systems, which is substantially more CPU intensive than the HTML5 player, but more reliable as it is much less dependent on the browser, OS, drivers, and video hardware all working properly.
Are you using the "Direct to wire" streaming feature? It can have compatibility problems. It could be helpful to screenshot your Streaming 0 configuration in Blue Iris Settings > Web Server > Advanced.
Good to know on clicking the clock icon, never thought about trying that. It says "Your network connection is not fast enough to handle this stream in realtime. Consider changing the streaming quality."
I feel kind of silly never noticing the Stats for Nerds option there either. Player delay and delayed frames are both low, but network delay constantly ramps up.
The FPS meter jumps around and drops to 0 or 1 when the delay starts, sits at 19-20 when working correctly.
I had the H.264 player set on Automatic, and trying HTML5, Javascript, and Web Codecs all had the issue. If it means anything Web Codecs stayed on the substream for near 5 seconds before switching where Javascript and HTML5 both switched from sub to main streams in half a second or so.
I was not using Direct to wire, but when I was playing with the encoding settings I tried it on and didn't notice a difference.
In my testing of settings I hit Use defaults on the Steaming 0 configurations to see what would change as I have no idea what I've changed over the years, screenshot the default settings, clicked cancel, and reopened to see what my settings where... but it appears clicking Use default immediately applies the default settings, so I honestly don't know what I've been on all the time, but I'm now back at defaults and the issue remains. I have since changed it to Intel QSV as I know I had that selected previously, but I didn't catch what all else changed so everything else should be default. Here is what it is at now:
I've been meaning to sit down and subnet my network out to break all the IOT things off into their own subnet for a while now, so I'm going to work on that this weekend incase it is something on my network causing the issue, will be easy enough to move the BI VM between each subnet and see if it happens on one and not the other. The other thing that just hit me is I started using Docker Wyze Bridge around the time it started happening, so I'll disable that the next time I catch it delaying and see if there is a change.