When we started planning our Cloud TV Platform we decided to prepare the video content ingestion for different devices and resolutions and store ready content on CDNs, rather than using on-demand content preparation solutions, such as Wowza. This decision was based on three basic assumptions:

- Storage costs less then CPU power. This is especially true when the number of your users is high
- Using a Wowza-like solution will either force us to become a CDN or limit the amount of CDNs we can use
- Wowza (specifically) will limit us in choosing a DRM system

At our current stage all assumptions proved themselves as correct for our environment and customers. At this time, for each incoming HD movie we output 16 different formats, bitrates and resolutions. In order to deliver video to multiple screens we need to handle many output formats and resolutions. The necessity of using adaptive bitrate streaming technology to deliver the video in an OTT environment is clear to everyone today. But which technology should we choose? Here is a (somewhat simplified) outline of our decision-making process.

Of course, everything should be outputted with adaptive bitrates (except for content for the legacy Android phones)

3. Choosing bitrates, resolutions and number of streams for adaptive bitrate for each device

We considered the following factors:

- Device capability to change resolution dynamically
- Is the DRM on this device at a sufficient security level for streaming of HD content?
- The price of CDN storage vs. price of CDN streaming

4. Defining bitrate /resolution ratio

We considered what would be small enough jumps between bitrates to create a smooth adaptive experience but big enough to minimize storage size. Currently we use the following bitrate /resolution matrices: