How to create a linear TV channel with Veset Nimbus and AWS Elemental

Content owners use Veset Nimbus cloud playout platform to originate linear TV channel. Veset Nimbus is a true cloud-based SaaS platform. Neither upfront investment nor long term commitment, whether direct or indirect, is required from the customer. The platform’s web-based intuitive, simple and user-friendly interface allows users to create new linear TV channels in a fast and efficient manner. Veset Nimbus output is a broadcast quality steam that can be delivered to the viewers via OTT and/or traditional distribution channels.

AWS has evolved into a pre-eminent global cloud platform for media organisations worldwide. With the addition of Elemental in 2015 to its rooster of video processing and distribution capabilities AWS significantly enhanced its relevance to previously closed and IT-resistent broadcast technology market. Migration of many of Elemental capabilities to AWS Elemental platform and further addition of wide range of services focused on OTT distribution in particular enhance capabilities of Veset Nimbus as it is natively developed for AWS and seamlessly integrates with the wide range of AWS Elemental services.

For example broadcasters use Amazon MediaLive, MediaStore and CloudFront services to stream their linear TV channels to viewers across the globe using a wide variety of protocols that are layered on top of HTTP.

In this article we will demonstrate how to originate a linear TV channel using Veset Nimbus cloud playout and setup Amazon services to broadcast to any vMVPD and OTT platforms including Roku, Hulu, Samsung, Amazon Prime video and others.

Veset Nimbus

We will ingest a 2 hour movie with captions and several ads. Then we will create a playlist, split the movie in 8 parts, add Veset logo and few other graphics, insert ad breaks, add SCTE-35 triggers to the ad breaks. Then we will apply the playlist to a channel and assign the channel to two playouts - main and backup. We will configure the playout outputs to send RTP with SCTE-35 triggers and EIA-608 captions to AWS MediaLive over AWS local network.

Movie and ads are being ingested

Movie and 4 ads scheduled, movie split with IN and OUT markers, graphics secondary events and SCTE-35 triggers added

Veset Nimbus playout is playing the channel on the main and backup playouts

Configure a playout output with AVC video and AAC audio, send it to AWS MediaLive RTP destination A (created in the next step below); also note the SCTE35 track PID

AWS MediaLive

AWS MediaLive will work as a live transcoder and RTP to HLS segmenter. In this example we will create an adaptive HLS feed in four qualities. AWS MediaLive will store the HLS feed (M3U8 and TS files) in two respective AWS MediaStore containers. In AWS MediaLive console choose the same AWS region as one used to host Veset Nimbus playouts. Create a new RTP input, this will give you the main and backup RTP endpoints.

MediaLive input created, Destination A will be the endpoint for main playout, Destination B will be the endpoint for backup playout

Set the input security group to allow traffic from Veset Nimbus main and backup playouts IP addresses and ports

Create a channel using the input created above

Configure channel settings Avail Configuration in SCTE-35 splice insert mode

Set Timecode Configuration to Embedded timecode

Set the HLS group destination A and B to AWS MediaStore URLs created in the next chapter. Note that protocol should be not https but rather mediastoressl and that there should be a suffix, in this case we use /veset_demo

In Ad Marker section set the Hls Ad Marker type to ELEMENTAL_SCTE35

In Settings of each HLS quality configure the SCTE-35 Behavior to PASSTHROUGH and SCTE-35 PID to 500 (this is the SCTE-35 PID from Veset Nimbus output configuration)

AWS MediaStore

Open AWS MediaStore console in the same AWS region as one hosting AWS MediaLive. Create two containers. Note the data endpoint URLs, we need to input those in AWS MediaLive HLS destinations.

AWS MediaStore containers created

AWS CloudFront

Open AWS CloudFront console in the same AWS region as one hosting AWS MediaLive. Create a distribution. Add two origins and point to both AWS MediaStore containers that we created.

AWS CloudFront

Testing the output

The output HLS can be sent from AWS CloudFront CDN to mobile apps, web pages and OTT platforms. A good way to test the feed is to use VLC as it allows to see metadata of the feed and switch the captions.

AWS CloudFront

For more information about Veset Nimbus and AWS Elemental products please refer to:

Get our latest news and follow us on