We have an existing Windows Software solution running Milestone camera viewer components in a WinForms application. For a number of reasons, we need to replace this with a more up-to-date front-end platform. Our preference is UWP, though WPF could be an option.
The existing solution is based around WinForms & uses an AxImageViewerLib.AxImageViewerDotNet control. It connects using ConnectUsingCameraConfigurationXml() and the XML is pulled directly from Milestone.
Performance-wise, it’s ok but obviously the tech is getting a little dated and we were wanting to freshen up the user experience - hence looking at UWP.
We have XProtect Pro+, but not Corporate/Expert (and don’t think they are feasible), so we don’t have Direct Streaming on the Mobile Server (Mobile Server being the option that UWP would need to use). We are told that without Direct Streaming the Mobile Server is unlikely to cope with the ~200 concurrent video streams we need to be able to accommodate.
So can anyone provide guidance on a suitable way forward, please? What would be Milestone’s recommended approach?
I appreciate your response, but that doesn’t really give me the warm fuzzy feeling I was hoping for. Are you able to give a bit more of a formal steer? Firstly can you confirm that an approach using ImageViewerWpfControl / PlaybackWpfUserControl would support ~200 streams and be the best performing strategy available (without Direct Streaming)? And would that be the approach that Milestone would recommend in this instance?
Today the only practical way to build a UWP integration with Milestone is to use the MIP SDK Mobile .NET components / mobile API but you’re correct that without direct streaming it is going to put a heavy burden on the Mobile Server. 200 concurrent streams is likely going to be a bit much for one server even with hardware acceleration.
A WPF-based application targeting .NET Framework and using the MIP SDK components will effectively work just like Smart Client. The raw video stream will be received directly from the Recording Servers and will be rendered locally including with hardware acceleration if available. You might be better off going this route. I haven’t tried converting a WPF app to UWP but I suspect if you go for an MVVM development model it wouldn’t be terribly hard to migrate to UWP in the future if/when it becomes practical to do so?
An unconventional route for sticking with UWP might be to use a combination of MIP SDK Mobile and ONVIF Bridge which is now known as “Milestone Open Network Bridge”. You could use MIP SDK Mobile to login and get a list of devices and their ID’s, and when you want to show video, you could connect to the Open Network Bridge to the RTSP endpoint using the ID of the desired camera. You would have to supply your own components for communicating with the RTSP server, rendering the video, and handling playback controls though. I wouldn’t personally want to do this as it’s a lot of boilerplate work, but if UWP is worth the time in your case, it’s an idea to get around the lack of direct streaming through Mobile Server on Professional+.
For some reason, the direct streaming is now working on Professional Plus. Could you explain how that could be if its only suppose to be on Expert & Corporate only.
Also, could you confirm is the server has been specified using the Milestone Server calculator to handle 200 streams, will direct streaming allow for 200?