How to ingest 3 qualities of the same live streaming and serve it as HTTP Origin

Hi,

I am willing to ingest n (where n=3) qualities of a live stream in a Wowza Streaming Engine and combine them in something like a SMIL but I need to do It as HTTP Origin to serve it to a CDN, which can’t be done with SMIL. I am avoiding transcoding as it consumes too much computer power. Is there a solution for this ?

When you say three qualities, do you mean different streaming protocols or different resolutions or bitrates?

Please clarify.

You might want to use Wowza Video which would do the transcoding and scaling through the CDN for you- all different pricing plans available.

Hi, I mean different bitrates and resolutions.

Ok I’ll double check on the approach you would take and be back soon

Your CDN should support an SMIL workflow (most do - if they don’t, find another CDN).

You will server a URL that looks like this:

https://my-cdn-fqdn/live-http-origin/smil:mySMILfile.smil/playlist.m3u8

This article describes how to create and format sn SMIL file using Wowza Streaming Engine Manager:
https://www.wowza.com/docs/how-to-do-adaptive-bitrate-streaming

Yes, you are right, the CDN can read the SMIL file BUT the problem here is that a Single server or origin application does not alleviate the traffic on the Wowza Streaming Engine server as it replicate every request to the server. For a CDN to work properly with Wowza Streaming Engine the application should be create as Live HTTP Origin.

The HTTP-origin application type is effectively sessionless. You shouldn’t have any problems serving content to CDN using this approach. This article may offer some insight (ignore that it’s using CloudFront, the Wowza Streaming Engine setup is the same):

https://www.wowza.com/docs/how-to-integrate-your-wowza-ec2-instance-with-cloudfront

Ok, but how can I ingest three different quality signals in a Live HTTP Origin and build a ngrp file in order to serve it in the CDN ? Without using the transcoder function.

When you’re not using the transcoder, you can use the SMIL tool in Wowza Streaming Engine Manager or create the SMIL yourself (this is in the article I posted, earlier). This is a sample SMIL file:

<?xml version="1.0" encoding="UTF-8"?>
<smil title="SMIL file for live streaming">
<body>
<switch>
<video height="240" src="myStream_200" systemLanguage="eng" width="424">
<param name="videoBitrate" value="200000" valuetype="data"></param>
<param name="audioBitrate" value="44100" valuetype="data"></param>
</video>
<video height="360" src="myStream_350" systemLanguage="eng" width="640">
<param name="videoBitrate" value="350000" valuetype="data"></param>
<param name="audioBitrate" value="44100" valuetype="data"></param>
</video>
<video height="720" src="myStream_700" systemLanguage="eng" width="1272">
<param name="videoBitrate" value="700000" valuetype="data"></param>
<param name="audioBitrate" value="44100" valuetype="data"></param>
</video>
</switch>
</body>
</smil>

You just need to reference the active streams and bitrates which should be visible in “Incoming Streams” in WSEM. Host the SMIL in your [install-dir]/content folder.

2 Likes

Ingest all three bitrates as completely separate streams into your Origin; then build the SMIL on the Edge. Works as long as you have a single Origin.

1 Like

Just coming back to thank you. It worked perfectly.