Traditional TV channels are broadcasted via cable and/or satellite and are expensive to create and broadcast. They need sophisticated and often specialized hardware equipments to create and deliver. In contrast, an internet TV channel can be created and delivered easily and completely in cloud using only software components. These internet TV channels can then be delivered to web, mobile apps, smart TVs, etc directly from cloud.
In this article, let us discuss how one can create and deliver an internet TV channel entirely in cloud very easily without sophisticated equipment.
Firstly, let us discuss the components of a cloud based internet TV channel service. Then we shall see how to ingest and prepare VOD files. Next, let us discuss the design of a scheduler and playout that creates the linear TV stream. This will be followed by a discussion on monetizing the channel with ad slates, marking up ads, and server-side ad insertion. Finally, let us also discuss some advanced features like graphic overlays, preview slates, switching to live stream that would help to make your TV channel look more professional.
Table of Contents
Components of a cloud based internet TV channel service
An internet TV channel service on the cloud would typically consist of
- Transcoder : Ingest VOD files and transcode to fixed profiles.
- Scheduler : Build schedule for playing out content and store schedules in a database.
- Stream pre-processor : Pre-processes and conditions stream for playout. This also includes insertion of overlays and graphics.
- Playout : Play VOD content as if its streaming live as per schedule. Insert ad markups for SSAI.
- Server Side Ad Insertion (SSAI) : Inserts server side ads for monetization.
Let us now start discussing each of the individual components and also discuss some related components like overlays and graphics which can make the channel look more closer to a broadcasting channel.
Ingesting & transcoding VOD content
TV programs are simply VOD content played back to back as if it’s a live stream. Hence the first step is to ingest and transcode VOD content. Since it is delivered as a live stream, all VOD content needs to be transcoded to the same profiles. It also helps to equalize audio loudness. Videos are typically packaged as an adaptive bitrate HLS VOD. Program details with HLS URL and metadata are saved in a database for use in scheduling.
The next step is to build a table of schedules that contains a list of programs to be played out at specific times. This schedule needs to be built in advance so that any pre-processing can be done and also an EPG can be published to applications and platforms that receive this TV stream to inform users ahead of time. Further, a lock in schedule say for one day is necessary so that it gives enough time for all pre-processing to be complete and files made ready for playout. A final preview of the channel for a day can be reviewed once the schedule and pre-processing for a day are complete.
Stream pre-processor inserts overlays and preview graphics into stream. Overlays that pop up a message such as “Now playing”, “Coming up” etc are graphics that are overlayed on top of the video. Since the overlays are dynamic i.e. it depends on what content will play next and hence based on schedule, pre-processing step will generate overlays. HLS segments are identified on which graphics need to be overlayed. These segments are transcoded to have overlays and overlayed segments will replace original segments only in this schedule. Since some segments are transcoded, manifest is updated to add a discontinuity tag around transcoded segments. A schedule level manifest is created to keep track of such dynamic manifest changes that are not to be reflected in original content.
Previews are graphic content that is created and inserted as scheduled. Previews depend on next and future programs and hence is dependent on schedule. Typically preview templates are used and dynamic text & video overlays are added in the transcoding phase.
Since overlays and previews are dependent on schedule, a lock on changes to schedule needs to be implemented to ensure overlays and previews are ready before air time. A lock of a day or two is generally preferred to have a balance in updating schedules and pre-processing of schedules to create overlays, previews, etc.
Playout reads a schedule and finds the corresponding prepared VOD file. It then creates a live HLS manifest as if the video is being streamed live. It inserts a new segment, sleeps the duration of segment, inserts another new segment, removes an old segment, and goes on and on. Playout creates a linear stream out of VOD content. It is also responsible for inserting ad cue markers to decorate ad boundaries which are needed for server side ad insertion.
Server side ad insertion (SSAI)
Server side ad insertion (SSAI) is responsible for replacing ad slates with ads. They also handle fetching ads from ad server, transcoding ads to profiles matching content and reporting of impressions when ads are viewed by users. This is an important monetization component in the system.
Player receives manifest from SSAI server. When it encounters an ad, SSAI will replace ad-slate with ads. This ad can be customized to users and hence different ads delivered to different users.
Handling Auxillary Content
In this section, let us review how we can ingest some of the auxillary content like promos, ad slates and also discuss fillers that are needed to maintain an accurate schedule during playout.
Promos are commonly seen in TV channels. They are short videos of an upcoming show. They are inserted at the end of a program or can also be inserted in the middle of a program.
Ad slates need to be transcoded similar to programs and their insertion point noted in the schedule. Cue-out and cue-in markup will be added that can be used by server side ad insertion to insert ads in place of slates.
Fillers are short duration videos that are generic for a channel and transcoded to same profiles. There are chances that the actual duration of a video is shorter than duration that is calculated and added to the schedule. In this case, fillers are inserted automatically by the playout server to ensure time sync between the playout of programs and its schedule.
In case the actual duration of the video is more than that being indicated in the schedule, adjustments of ad slate duration are typically done to ensure programs stay in sync with the schedule.
Switching to Live Streaming
There are some instances where a switch to live stream needs to happen during playout. If the switch is already part of the schedule, then playout appropriately makes the switch to live stream. It uses EXT-X-PROGRAM-DATETIME attribute in live stream to make the switch as accurately as possible.
In the case of overlays and preview slates, since the actual video of live stream is not available during the pre-processing stage, an indicative VOD video needs to be associated with live streams for this purpose.
There is also a possibility of an operator switching to a live stream. In this case, an immediate switch to live stream will occur at the segment boundary of the next segment due to be played out.
In this article, we discussed how one can design an internet TV channel service entirely in the cloud by using only software components. It is a cost-effective method of distributing TV channels to a wide range of connected devices. SSAI provides a monetization capability.
Many content companies are creating & distributing free ad-supported linear channels to connected devices and streaming services. Their numbers are growing in magnitude as is the viewership of these channels.
Harinandan Srinivasamurthy is a video architect working in OTT, video encoding/transcoding, video streaming, video analytics, connected TV, and related technologies.
Hari has been working on video technologies for the past 14 years with experience working at Ittiam Systems, Harris Broadcast, Motorola/ARRIS, and Saranyu Technologies. Hari has architected and developed a complete suite of video technology products such as cloud VOD transcoder, graphics accelerated live encoder, streaming linear TV channels, FairPlay & Widevine license servers, ad detection & SSAI.
Hari is also passionate about edtech technologies and has designed an LMS portal to make education transparent to society.