What is done inside the Media Client SDK
Updated: October 15. 2011.
Netview's Media Client SDK transforms a diverse set of input formats to a stream that the devices supports. In order to do this, all of the following is done inside our Media Client SDK module (parts of it can be done outside, if more control is needed):
- Network communication: All communication between the Internet and the third-party Media Player goes through the SDK. This means that the SDK handles communication with the website, hiding complexity such as different protocols, errors, delays etc. A part of this – and this is something that separates us from many other solutions – is to spend a lot of time working on how to make the module tolerate network errors. We have experience handling non-standard network configurations (common in many parts of the world).
- Bit-rate adaption: In adaptive streams, it selects the bit-rates. For wireless scenarios this is espeically challenging. As bandwidth fluctuates, it is an advantage to have the ability to adapt, but it is also important to not adapt more often than what is needed. For an optimal user experience, we try to achieve a stable stream with high average quality and minimal interruptions. For that reason we have worked on how to make algorithms that do not change the bitrates too often as available bandwidth changes. The algorithms are adjusted to available memory. An algorithm that is configured to use more memory will be able to buffer more and provide a more stable play-out with less risk of buffer underrun.
- Remuxing: When necessary, the SDK remuxes the video automatically, feeding the media player a container it accepts.
- DRM-support: This is done differently depending on DRM format. For PlayReady the Media Client SDK can do both decryption and key-exchange, with no integration needed on the stack (besides output-control, if this is needed). However, PlayReady can also be done outside the SDK (with Smooth, an addition to the standard protocol is needed). For iOS and Android 3.x apps, we have no solution for output-control.
The media player recieves a continous stream (sometimes switching bit-rate) packaged in a format it understands.
