AWS for M&E Blog
Learn how Zee5 accelerated highlights delivery on AWS, offering fans quick access to re-live their favorite cricket moments
This post was co-authored by Suneel Khare, Rahul Banerjee, and Lalitesh D at Zee5, and Girish Nair and Rahul Sureka at AWS.
Zee Entertainment Enterprise Limited (ZEEL) is a global content company with more than 1.3 billion viewers around the world. Zee5, the online video streaming Over The Top (OTT) platform, offers an exhaustive array of content, with 90+ live TV channels and over 125,000 hours of viewing across English, Hindi and multiple other Indian regional languages making it a complete video destination for OTT viewers.
In 2023, Zee returned to live sports broadcasting with The International League T20 (ILT20) cricket. At Zee5, this was the first opportunity to deliver live sport to end users on their OTT platform. It’s been an incredibly challenging and exciting journey to ensure they got everything right from day one. From receiving international feeds, adding ad-markers on playout, encoding with best presets, or providing best in class audio-video experience on live sports, everything had to be achieved within a short window. Setting up an architecture that can scale to millions of simultaneous requests was a very difficult task. Zee5 along with AWS took this as a challenge and delivered action packed live cricket to millions of fans across the globe.
This blog talks about Zee’s video engineering pipeline designed on AWS, which helped them deliver lighting fast highlights and short video clips to their viewers. The live cricket viewing experience is greatly enhanced by providing the option of re-watching favourite moments as many times as the viewer wishes as quickly as possible after the play occurred.
Introduction – Instant Highlights
On traditional broadcasts, highlights are only available at the end of an inning. However, the ILT20 tournament had a requirement to publish highlights for each four/six wickets to other platforms as soon as possible after the moment occurred. This was needed for promotions, marketing, SMS campaigns, etc. This feature also allows viewers to catch-up on any moments that they may have missed due to interruption. Another use case to address was the compilation of personal highlights to be rapidly put together after some accomplishment by a particular player (say, post hat-trick, half century or century, etc). There are many such scenarios, but the requirement is that VOD clips need to be transcoded and published as soon as possible while ensuring a premium audio-video quality experience for Zee’s viewers.
Solution Architecture
Zee5 encodes over 130 hours of VOD content daily on AWS using a robust mechanism that has been time-tested for seamless transcoding and publishing to the Zee5 platform. However when it comes to highlights, speed of publishing becomes critical, and the existing pipeline configuration for VOD needed optimization to ensure timely delivery of highlights without compromising on quality.
The following is the solution architecture devised to meet the requirement of speedy delivery of sports highlights while ensuring that we encode and produce high quality content, enabling Zee5 users a best in class sports highlights/key moments experience:
The solution architecture shows how the live sports feed is ingested to generate the highlights which then flows through the transcoding pipeline and published to the content management system for delivery.
Solution for Generating Instant Highlights
- Ingesting live feed and leveraging AI to create highlight clips
- The live match feed from UAE was delivered to Zee5’s AWS account via AWS Direct Connect.
- Feed are received on a private virtual interface of AWS Elemental MediaConnect which is deployed as an SRT listener.
- MediaConnect fans-out the streams for live playout, on-premises downstream workflows and for highlight creation.
- Feeds are pushed as SRT streams to a 3rd party system which uses AI and ML powered technology to create new assets from video content in real time. For creating highlights in real time it does the following:
- Identify key moments, cut relevant portion to create clips from live stream.
- Categorize clips (highlights) pertaining to innings, individual performances, partnerships etc.
- Once the clips are generated, they are published to a designated path on an Amazon Simple Storage Service (Amazon S3) bucket as MP4 file along with JSON metadata. Metadata is important for the Content Management System (CMS) to publish the clip with the right classification for the right match (so that it appears prominently on the Zee5 app) and with appropriate preview thumbnails.
- Optimize Transcoding Pipeline
For security reasons and for ease of management, generated clips are published into a different S3 bucket than is used for the rest of Zee5’s transcoding pipeline. Once the clip is published, an AWS Lambda function copies the content (after performing certain validations) to the transcoding bucket.
There were 2 main reasons for this architecture:
-
- Transcoding bucket is the source for the entire transcoding flow used by Zee5, and thus it was desirable to avoid providing write access to a third party.
- This additional copying step did not impact end-to-end processing time, due to the small size of the highlights clips.
Now that the clip is in the transcoding pipeline, we need to configure the pipeline to handle highlights separately with optimum performance.
Step 1 – Define a specification for input content as below:
- Content shall be of 1920 x 1080 resolution, progressive, 25 frames per second (fps).
- Content shall be at least 10-12 Mbps, and shall be cut at start of IDR picture.
- Frame rate of video shall be constant.
Note: Accelerated transcoding in AWS Elemental MediaConvert expects video to conform to certain requirements.
- Video should be AVC encoded and audio encoding shall be AAC LC with 2 channels.
- Audio and video shall be encapsulated as MP4.
Note: We ensured this by validation in COPY Lambda function and triggering only for .mp4 files.
Step 2 – Highlight categories:
- Short clips → Typically clips shorter than 2 minutes.
- Long clips → Clips longer than 2 minutes.
Step 3 – Define transcoding job templates as per the categories:
- Transcoding and packaging is achieved using MediaConvert on demand queue.
- Generate only HLS TS VOD outputs, and the content is not encrypted.
Note: HLS TS is tried and tested on playback of all devices using Zee5 app on field (both Android and Apple).
- For long clips, enable accelerated transcoding to ensure transcoding completes really fast.
- Disable accelerated transcoding for short clips.
- Through several trials and tests, Zee5 came up with appropriate transcoding presets capable of providing best in class video quality for Zee5 users.
- Lambda function (“Transcoding job creator”) then creates MediaConvert job for transcoding by specifying these presets.
- Publish the Content
- Post transcoding, a Lambda function is invoked, which copies metadata associated with the just transcoded source clip and uploads it to the same path as the transcoded content (flow #13 and #14 on above diagram). At this point, the destination S3 path includes all of the details (transcoded video clip and metadata) required for the content to be published.
- This Lambda function also posts a message to an Amazon SQS queue. The message contains details like manifest path, CDN domain to be used, path to metadata file, etc.
- The component that’s responsible for publishing assets is listening to this message queue. Once the message containing all the necessary details is available, the component leverages this information to publish the asset and make it available to Zee5 users.
- We bypassed all intermediate steps and directly routed details about transcoded content to the publishing CMS. This reduced the overall time to publish content compared to the existing workflow.
Result
By leveraging the AWS solution, we were able to deliver the content for publishing in time well below the SLA requirement, while ensuring each content is transcoded with high video quality.
The following table depicts the complete time taken to generate, ingest, transcode and publish some sample highlight clips.
Input content length | Input content size | Time taken to process |
27 seconds | 33 Mbytes | 1 minutes 11 seconds |
30 seconds | 41 Mbytes | 38 seconds |
31 seconds | 43 Mbytes | 44 seconds |
36 seconds | 48 Mbytes | 1 minutes 19 seconds |
5 minutes 16 seconds | 398 MBytes | 2 minutes 14 seconds |
18 minutes | 1.31 GBytes | 2 minutes 19 seconds |
18 minutes 31 seconds | 1.36 GBytes | 3 minutes 7 seconds |
This solution delivered an average of 65 long clips and 70 short clips for each match, combining highlights generated for multiple languages through the course of 34 matches during tournament.
Call to Action
To gain further insights into creating a transcoding pipeline using AWS, please refer to our solutions page. Additionally, if you’re interested in getting started with AWS Elemental MediaConvert, please visit the product page. For efficiently transporting live video streams, we recommend utilizing AWS Elemental MediaConnect along with AWS Direct Connect.