How Components in Azure Media Services Integrate With VIDIZMO

VIDIZMO uses different technologies to conduct streaming, one of them being Microsoft Azure Media Services (AMS) which enables you to securely upload, store, encode, and package video or audio content for both on-demand and live streaming.

Using components from Azure Media Services, you can configure VIDIZMO to stream video to different devices and target geographically dispersed audiences of any size. AMS uses cloud based, automatic adaptive bitrate transcoding to deliver the stream in multiple renditions that can be viewed from any device, ensuring a robust and reliable connection.

This article is about AMS components that are used for On-Demand and Live Streaming in VIDIZMO and how selecting various AMS options affects the overall cost of the service. This is particularly helpful when setting up different VIDIZMO Channels using separate AMS accounts, which would allow you to see separate billing against your AMS accounts used in the respective Channels.

Below is a list of AMS components required in VIDIZMO to conduct On-demand or Live streaming. For more details about each component, click on the respective links:

To serve On-Demand content, you need the Azure Blob Storage, the Processor or encoder and the Streaming Endpoint.

1. Blob Storage

In Azure Media Services, you upload your digital files to an asset in the Blob Storage is accessible only via the Streaming Endpoint. The asset can contain video, audio, images, thumbnail collections, text tracks, and closed caption files (and the metadata for these files). After the files are uploaded, your content is stored securely in the cloud for further processing and streaming.

Use the Pricing Calculator to get the current estimate for your blob based on your requirements.

2. Processor (Encoder)

Encoding is the process of compressing video and audio so your customers can view your media. Once a video has been encoded it can be placed into different file containers. In AMS, the encoding engine is called the Processor, which performs Transcoding and Indexing and it is needed to transcode VIDIZMO media uploaded in your blob storage.

It is possible to run multiple instances of the Processor which determine the number of jobs you can process simultaneously. For example, if you want to transcode two videos in parallel, you need two instances (reserved units). If you just have two reserved units and you have four files to upload and transcode, only two will be processed while the other two will be queued.

Reserved units are available as reserved unit types S1, S2, or S3, with each type determining the speed with which your media processing tasks will be processed.

Processors are of two types, the Dynamic Packager and the Indexer:

Dynamic Packager

The process of placing encoded media into a container is called packaging. With the dynamic packaging that Media Services provides, you can deliver your adaptive bitrate MP4 or Smooth Streaming encoded content in streaming formats supported by Media Services (MPEG-DASH, HLS, Smooth Streaming,) without having to re-package into these streaming formats. VIDIZMO recommends delivering your content with dynamic packaging.

The For transcoding On-demand content, you need a "Dynamic Packager" type processor. You can have multiple instances (Reserved Units) running concurrently, and depending on the number of instances, parallel jobs can be processed.

There are two factors that affect the price of Transcoding when using this type of processor:

Output Minutes: In addition to the fixed cost of the Processor, you will also have to pay for the amount of output minutes utilized during the period it took to process the video.

Video Quality: The rate of output minutes also depends upon the video quality output. For example, if the video is processed in SD quality, the rate will be lower than the video processed in HD. For HD the rate of output minutes increases to twice that of SD, and for 4k, it will be four times that of HD.

Azure Media Indexer enables you to make content of your media files searchable and to generate a full-text transcript for closed captioning and keywords. You can process one media file or multiple media files in a batch. In VIDIZMO, VTT and AIB file types are used.

The difference between VTT and AIB is that AIB also supports dialects. Audio indexing blob file (AIB) can also be used with SQL server. For example, if a word has a number of formations, it can be searched on all those formations, rather than do a hard-match of the query that was used to search the word.

There are two factors that affect the price of Transcoding when using this type of processor:

Output Minutes:The indexer is priced at number of hours of content to index. If you are closed captioning a video that took an hour, you will have to pay for that period that it took to process the closed captioning in addition to the fixed cost of the indexer.

You have a QuickTime video at 1920x1080p resolution, 20 minutes in duration, that you encode to an MP4 output of the same length, with the video at 1920x1080p resolution and one audio track.

The effective multiplier would be 2 (for HD) plus 0.25 (for audio), adding up to a multiplier of 2.25. You would be billed for a total of (20 minutes x 2.25) = 45 output minutes.

If you used the Media Encoder Standard for this encoding, then your cost would be (45 output minutes x $0.015 / output minute) = $0.675

Note:This an example based on rates available at the time of writing this article. Always use the Pricing Calculator to get the current estimate.

3. Streaming Endpoint

A streaming endpoint represents a streaming service that can deliver content directly to a content delivery network (CDN) for further distribution. These Streaming Endpoints are like streaming servers, intelligently performing real-time Dynamic Packaging where the outbound stream can be a live stream or a video-on-demand asset in your Media Services account.

When a file is transcoded in AMS, a multi-bitrate MP4 file is created. There are other files as well like HLS, MPEG DASH or HDS but since VIDIZMO does not create these file types, the Streaming Endpoint creates these file types on-the-fly intelligently when the VIDIZMO player sends the request. This is called Transmuxing and is a built-in feature of the Streaming Endpoint.

AMS Streaming Endpoints or servers, measured in Media Reserved Units, can be added as multiple units to increase your serving capacity. For example, if a single server has the capacity to deliver 200Mbps, you will be able to deliver 200 streams of 1Mb each or 2Mb stream to 100 viewers. If you have a capacity greater than this, you can either increase your Media Reserved Units or you have the option to enable CDN on the Streaming Endpoint.

CDN

CDN is an optional component which is used to add scalability to the Streaming Endpoint. This enables you to use a single Streaming Endpoint as your Origin Server and use Microsoft's CDN, consisting of thousand's of endpoints spread all over the world, to scale your setup.

The price of the Streaming Endpoint depends on the number Media Reserved Units used and as you increase the number of Streaming Endpoints, the cost increases. In addition to this, Azure also charges for the amount of bandwidth consumed i.e. if you have served 200 GB content, you will be charged for the GBs consumed.

Similarly, if the CDN is used as endpoints, you will also be billed on amount of bandwidth consumed. So if you have delivered lets say, 1000Gb from different locations, you will have to pay for the bandwidth utilization in addition to the cost of the Media Reserved Units or Streaming Endpoints used.

To conducting a Live Stream, you need the Blob Storage, a Streaming Endpoint to push your live video, and you need another component called the Channel, which is the publishing point in AMS. Optionally you can add a CDN too if you want to scale upwards.

Channel (Publishing Point)

A Channel represents a pipeline for processing live streaming content and is equivalent to the publishing point in VIDIZMO, which basically means that it is the endpoint to which your encoder pushes the stream.

There are different kinds of Channels in Azure Media Services i.e those that use Trancoding and those that run in the Pass-through Mode:

1. Transcode

When you use the Channel with the Transcode option, it also transcodes and creates the output for all devices and in different formats. Use this option to encode your single bitrate live stream (RTMP) to multi-bitrate stream (HLS, HDS, MPEG DASH), as this method is more economical for scaling up quickly for infrequent events.

There is a billing impact for live encoding and you should remember that leaving a live encoding channel in the "Running" state will incur billing charges.

2. Pass-through Mode

The pass-through delivery is when the ingested streams pass through Channels without any further processing. Using a pass-through method is the most economical way to do live streaming when you are doing multiple events over a long period of time, and you have already invested in on-premises encoders.

On the other hand, if you do not want AMS to create different renditions, for the sake of latency on AMS or some special features your encoder offers that are not available on AMS, then you can use your own encoder to push different renditions and use AMS' pass-through mode. In this case, AMS will not process the stream but instead pass it on the way it receives it.

If you want to push a 1080p HD video and want it automatically downgrade to 240p, 360, and 720p etc renditions, then you will use AMS' Encoder enabled Channel, which costs more. The Channel then performs live encoding of the incoming single bitrate stream to a multi-bitrate (adaptive) video stream. When requested, Media Services delivers the stream to customers.

Another feature that the Channel offers is that it can record your stream on the AMS blob storage. In AMS, a recording saved by the Channel called a Program, which is described in the next section.

Program

A recording saved by the Channel is called a Program and whenever a Channel is setup, a default Program gets generated automatically for the duration of 24 hours. What the Channel does is that it creates storage space in which the live stream content gets saved so you always have access to the last 24 hours of the recording. As this 24 hour period ends, a new Program or storage file, is created.

In VIDIZMO, whenever a Publishing Point is started or stopped and then started again, a new Program gets generated and it automatically gets published in VIDIZMO as an individual On-Demand mashup available in the Channel Library. Program uses the AMS Blob storage to save the content and is priced on storage GB consumed.