Key concepts

Discover the terminology and the main features of Virtual channel application

Starting a Virtual Channel

When creating your Virtual Channel service in, you are being asked to pick a Live source as original content. It is recommended to use a live stream with a black slate, or personalized logo, as an original content, it will be used as base stream from your Virtual Channel. At the end of the process of the Service creation, you receive an output URL. This URL immediately delivers a Live manifest referencing the original source you would have defined when creating the Service.

Any time no slot covers a time period, the base live source will be displayed in the manipulated stream. Below is a visualisation of a virtual channel with different slot types, and base live channel when no slot is planned.

Slots can be either

  • VOD asset contents
  • Live source streams
  • Ad creatives, provided by an Ad server

The diagram below show an example of a manipulated stream with different slot types:


A few key takeaways:

  • A Virtual Channel starts as soon as the Service is created, with manifests referencing the original Source content defined when creating the Service.
  • Not scheduling a program during a certain period on your Virtual Channel, does not significate the end of the Virtual Channel.
  • If no program is scheduled on the Virtual Channel for a given period of time, the manifest will continue to be delivered, referencing the original Source content.
  • A Virtual Channel stops delivering the manifest when the Service is deleted.

Ad server for ad breaks

When creating a Virtual Channel, we have the ability to specify an ad server. This ad server will provide ads every time it is specified as a source for a slot creation.

Like in Dynamic AD Insertion services, some option are available when using an ad server :

  • Ad tanscoding for the ads inserted to match the base live source format
  • Gap filler use in case some free time is left after all ads have been inserted during an ad break
  • Server Side Ad Tracking to send tracking beacons to ad server for monetization

For detailed info on these options please visite this ad insertion key concept page

Slots and scheduling logic

Building a Virtual Channel schedule in means creating consecutive replacement slots over a certain period. To schedule a slot, we need to define :

  • a type : either a content, from an asset or live source, or an ad break, from the ad server that is associated to the service)
  • a start time
  • a duration or an end-time
  • a category, if needed, when the slot should be displayed for a certain audience only
Two types of slots : content or ad breaks

Two types of slots : content or ad breaks

To build the following timeline, we had to create 3 content slots with VOD asset, 1 content slot with a live source and 1 ad break slot. Of course, the reamaining period between slot 2 and slot 3 is not a good practice cause the streams gets back to the base live stream, which may not interest the final user.

An output live stream example with different slot types

An output live stream example with different slot types

Using Live events in Virtual Channels

As soon as one needs to schedule Live events in the Virtual Channel, scheduling can become a bit more complex to manage. Indeed, Live events start at a specific time, and finish at a another specific time. Sometimes, some events such as sport events need to be extended (soccer), or shortened (Tennis) in almost real time. Hopefully, a running slot can be edited to change its duration or end time.

Moreover, it can get really complex to build a Virtual Timeline where the combination of VODs perfectly matches the start of a Live event. In that case, we recommend using promos and slates, which can come fill the gap between programs for a couple of seconds without deteriorating the user experience.

Using categories for audiences Management

All slots used to schedule programs (assets or events) are either unconditional or audience-based. Under the unconditional slot approach, no matter the Audience the subscriber belongs, she/he is concerned by the slot.

Under the audience-based approach, the subscriber is concerned by the slot if she/he belongs to the Audience for which the slot has been specified. When working with Audience and channel personalization, some programs need to be scheduled for a certain base of subscribers, and other programs for another subscriber base. Sometimes, subscribers from different bases also have a common base of programs that they watch at the same time. In, it is possible to create different slots on the same Virtual Channel, over the same period of time, for different Audiences.

You can find more information about defining Audiences in the Handling Content Replacement slots section.

To illustrate that personalisation approach, we will assume now that we have a subscriber base that is segmented in 3 audiences : Child, Teenage and Adult. We intend to have some common programming for all 3 audiences, as well as dedicated programs for each. Each audience has its own time line with personalized contents, although they are requesting the same live stream, manipulated by

To achieve this on an existing Virtual channel service, we have to go through the following steps:

  1. Create 3 categories : Child, Teenage and Adult
  2. Create an unconditionnal slot (ie. no categories declared at slot creation) for the Live event period
  3. Create slots series for each category. For instance, for child audience, we need to create 4 content slots with "Child" as Category and each of the 4 VOD assets sources (VOD10, VOD11, VOD12 and VOD 13)

Then, to display each manipulated stream, requests URLs just need to ad categories as query parameters :

  • Child audience:
  • Teenage audience : ?category=teenage
  • Adult Audience : ?category=adult