We are using a custom implemented driver developed with the MIP SDK and are experiencing issues displaying video footage in the SmartClient. Fetching recorded footage via the playback API, as well as live footage, results in a black screen. We have verified that footage is indeed being streamed to the Milestone system, but the client fails to display it. When enabling diagnostics in the SmartClient, it shows “Image availability: DecodingFailed”.
The environment is virtualized, so we rely on a solution without hardware acceleration. Is there any additional documentation regarding this decoding issue that could help us display the video correctly in the SmartClient?
For reference: Searching the forum, a similar issue was posted before Developer Forum
It’s possible that the stream isn’t being sent in a fully compliant format, but seeing “Image availability: DecodingFailed” in Smart Client means you’re close — the stream has passed the Recording Server’s validation and is reaching the Smart Client.
Be aware that Smart Client’s hardware‑accelerated decoder is more capable than its software decoder. For example, H.265 decoding generally requires hardware acceleration. Have you tested with a Smart Client running on a system with a GPU that supports hardware‑accelerated decoding?
You can also experiment with stream parameters such as resolution, GOP structure, and avoiding B‑frames.
The stream we deliver is encoded with H.264, using the Main@L4.1 Profile, with no B-Frames present. I’ve attached more information about the encoding at the bottom. We also send a stream with lower settings using the Main@L3.1 Profile as our live stream, but the same issue still occurs.
Exporting the footage and viewing it on a different device works, so the export itself was successful - the SmartClient has issues displaying it depending on the hardware. We have two other virtualized setups, using different hardware setups for the virtualizer host and there the video is decoded (without hardware acceleration) correctly in the SmartClient.
The crucial thing for us is whether we can somehow guarantee that the streams we deliver through our driver are in fact usable in the SmartClient. Is there perhaps a section in the MIP SDK docs that narrows down the supported codec parameters?
Stream encoding parameters
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L4.1
Format settings : CABAC / 1 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 1 frame
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Bit rate : 1 712 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Color range : Full
Color primaries : BT.601 PAL
Transfer characteristics : BT.601
Matrix coefficients : BT.470 System B/G