Plum iTV Media Engine consists of several elements: Plum iTV Streamer, Plum iTV Load-balancer and Plum iTV Storage.
After streams are transcoded with Transcoder, next step is Streamer that besides streaming towards subscribers, do video manipulation - recording for CatchUp and TimeShift, but also for subscriber recording - nPVR. Streaming server streams content to subscribers, using different protocols, load-balancing mechanisms, CDN infrastructures…
TimeShift, BuffetTV, CatchUp and nPVR are recorded on a NAS (Network-Attached Storage) storage and its content is available for subscribers. Transcoder sends streams via multicast to the Streamer. All streams are cached on Streamers for 30 seconds and used for LiveTV for Multiscreen. Multicast streams from Transcoder for Multicast LiveTV for STB devices can be sent directly to the subscriber, outside of IPTV system.
Streamers will store these .ts files after 30 seconds on the Storage for purpose of non-linear services (CatchUp, TimeShift, BuffetTV). Packager, which is part of the Streamer, segments UDP streams from Transcoder into chunks of 4 seconds, which are packed into .ts files.
After these files are stored, when requested for TimeShift or CatchUp/BuffetTV services they are sent to the Streamers. These .ts files are encrypted using sample level encryption. References to the corresponding key files appear in the playlist file so that the player can retrieve the keys for decryption.
Plum iTV Load-balancer is responsible for assignment of Streamers to subscribers. Plum iTV Media Engine is scalable solution and it can form a CDN (Content Delivery Network) structure. The number of Streamers increases linearly with the increase of number of subscribers. To minimize the distance between subscribers and Media Engine, a CDN stores a cached version of content on different Streamers, in multiple geographical locations POPs (Points of Presence). Each POP contains a number of Streamers responsible for content delivery to subscribers within its proximity.
01.
02.
03.
04.
For VoD, an offline Transcoder is needed to transcode all different codecs to H.264 and AAC, and to .mp4 containers. Files are stored on the storage server and streamed to Streamer when requested by a subscriber. Streamer repackages them on-the-fly into HLS or MPEG-DASH and streams to subscribers.
VoDs can be stored on storage server in two ways. One case is when recording of VoD is in one format, e.g .mp4, and then packaged on-the-fly for different streaming protocols. This case has support for different kinds of streaming protocols (HLS, MPEG-DASH…) using only one type of file on storage server saving storage space and then repackaging into requested protocol on-the-fly.
Other case is when content is stored in format that is used for streaming, if the system doesn’t require different streaming protocols. In this case files on storage sever are already saved in .ts files and then directly streamed as such. But then each type of files would have to be stored if there are different kinds of protocols being used, which increases number of files on the storage server.