Wowza Community

VOD Multiple Resolutions

I am looking to have multiple resolutions in VOD; like YouTube and Vimeo. So, when a user goes to watch a specific video, I want the VOD to scale to fit their bandwidth to give them the best resolution for their bandwidth to prevent video interruption.

How would I be able to achieve this?

You would create a SMIL file in the Engine manager or xml and set up the transcoder with your mp4 streams- the SMIL file is used to create multiple stream versions at different bitrates and resolutions. The player would automatically choose the version that best suits the needs of the device a viewer is watching from. But, the player needs access to that SMIL file to see the options. Very common part of adaptive bitrate streaming- transrating (bitrate) and transizing (resolution).

Here are the steps for VOD ( the steps are in there for resolution sizes as well as bitrates- they’re connected to each other) :

https://www.wowza.com/docs/how-to-do-adaptive-bitrate-streaming

Interesting blog and chart on common bitrates for certain resolutions too if you’re interested.

https://www.wowza.com/blog/adaptive-bitrate-streaming

So, I have to have multiple files, unlike YouTube and Viemo, which use one file. That is what I got out of that article. If so, that is going to be a LOT of storage. To convert 8k down to 320 is going to take a lot of space. I am looking for just one file to be uploaded and then scale down the file on the fly like YouTube and Viemo does. ffmepg can do it too.

https://www.wowza.com/docs/how-to-scale-video-on-demand-streaming-with-media-cache

I cannot use your storage. That’s why we have invested in to a Dell-Compellent solution. We can scale to Pb with a bunch of heads.

Yes, that’s correct. In Streaming Engine that is the case. In Streaming Cloud, it creates the SMIL file for you automatically like You Tube does, but we don’t support VOD in Cloud just yet. Soon!

But, the SMIL file is not too bad at all in Engine Manager. A few clicks here and there because we have some default templates you can use and it’s a pretty common setup with our customers. You could also create some custom code if you wanted to to automatically create a SMIL file, but that would be personal development on your own.

Here’s a video step-by-step tutorial on how to configure the SMIL file templates in Engine if that helps you:

https://www.youtube.com/watch?v=zQCKGEbvamY

YouTube does not store multiple version of the one file. It just uses one file in webm format. it then uses a transcoder to scale up and down in cache. I don’t want to convert files into multiple formats. I want one format that I can scale up or down.

Configure the SMIL options for the first sample video, bigbuckbunny_450.mp4, and then click Add.

  • Source (src) – Enter bigbuckbunny_450.mp4. This is the name of the source file in storage.
  • System Language – Enter eng (English per ISO 369.2). This is the encoded system language.
  • Video Bitrate – Enter 450000. This is the encoded bitrate value for the video, in bits per second. This value is the encoded bitrate value, in kilobits-per-second, multiplied by 1000. For this video file: 450 kbps * 1000 = 450000 bps
  • Video Width and Video Height – Enter 424 and 240 into the respective fields. This is the encoded size of the video, in pixels.
  • Audio Bitrate – Enter 44100. This is the encoded bitrate for the audio that’s included with the video

In regards to VOD and storage @Robert Sexton, you’d use our MediaCache. It stores your mp4 assets in a Cloud setting like Google, AWS etc. and when a viewer connects to watch a VOD, a url is created for playback and that would include the SMIL file as part of it. That particular stream gets pulled from MediaCache so you don’t need to have all those files locally.

Happy to check. Let me ask our Pro Services and Sales team. Be back shortly.

I may not have the answer until the morning fyi with the time here in Colorado, but I have reached out to see what we can offer you @Robert Sexton.

Thank you. We cannot be stuck with something that causes pausing in the video. It needs to be able to be smooth. We don’t want to have multiple source files. If anything, we want to upload one file, transcode that to the proper format then stream that so it can scale up or down smoothly. We have tried tones of Enterprise class media servers and it all comes done to the same thing. they focus on the live streaming and dis-regard the VOD. So, scaling 8k video down in multiple formats will take days and that will cause our customers to go else where.

You are welcome to submit a support ticket if you’d like our engineers to show you how you can set all of this up and test it out. We’d be happy to show you.

Using multiple files with the SMIL file causes the exact same issue as Adobe Media Server. When the file scales up or down the video pauses till the previous cache finishes. I am looking for an enterprise VOD. Is there a more reliable version?

We do not want to use 8 different files that tiers off one 8k video that support multiple formats. That will be too much storage. We need a simple storage, one file, like YouTube and Veimo uses. From there, they scale the video up or down from the one base file. They used to scale one file that you would upload into multiple files but it used too much storage. So, they went a different route and used one webm file that can scale up or down

That makes sense. Wowza doesn’t perform on-the-fly VOD transcoding, unless you want to use a playlist and schedule the stream as pseudo live, using Wowza’s live transcoder, as needed.

As a custom solution, we may be able to work something out. If you’re interested in engaging our Professional Services group, send an email to sales@wowza.com and refer to this post.

I have already reached out to them. All of this trying and testing has held us up by 4 months in our project. If it’s going to be like adobe and costs $100k to build one, we’re not in the market for that. We’re looking for off the shelf with support.

It will be difficult to find a platform that provides the turn-key, just-in-time transcoding that you’re looking for. It’s more common and practical to transcode and stage ABR content using storage for distribution, which is going to be much more economical and scalable than heavy CPU/GPU resources for real-time transcoding. When you upload a video to a service like YouTube, they run an extensive transcoding batch to convert the video to their specification. I very much doubt that they leverage transcoder resources, on-demand when a client requests a video.

I think you’ve got the concept. Source files/renditions are pre-transcoded, in-state. You can store the MP4’s anywhere you like (I did a VOD project with Dell Isilon, earlier this year - performs very well). Wowza maps to the file location using MediaCache and pulls the assets on demand.

The SMIL generates the manifest in Wowza Streaming Engine. It’s also possible to use what we refer to as an “amlst” which uses the Java API to generate the SMIL (Resolve SMIL file requests with the Wowza Streaming Engine Java API).

If you want to get into some more advanced concepts, get in touch with us directly. It may be possible to host HLS chunks and/or come up with a transcoding strategy if all the variables align.

We’re looking for something, like I stated before, off the shelf that has support. We need something that can cluster together. with 4 in a cluster per site across 10 sites. We have 1tb Dark Ethernet between sites. F5 load balancers for the front with 1tb public at each location.

We have already invested a lot in to the Lambda servers to handle the transcoding. I think we may be able to use Wowza but it wont be worth a full investment, no offense. We’re building something that needs to really scale and provide the best 8k video on the market of http and https