Online TV Architecture

Hello there;

I have to create a web TV to provide live and on-demand video and I’d like to know if someone out there can share some thoughts and/or give me some advice on this.

I coming from the “Windows Media Services” world so Wowza is kind of new to me.

The first thing I need to know is if I can accomplish this with Wowza. Here are some of the specs:

1- Simulate a live TV through files hosted on the server through a “server side playList”.

2- Allow changes to this “server side playlist” on the fly.

3- Switch back and forth between “server side playlist” and a live feed without interrupt the broadcast.

4- Streaming must be compatible with HTML5 players, iOS and Android devices.

I performed some tests with IIS Smooth Streaming and one thing I loved about it is how it responds to different bandwidths and the use of adaptive streaming, which raises some questions:

A- Can i achieve something similar with Wowza (adaptive streaming)? Or… can I upload a high quality video produced from flash media encoder and re-encode it on the server?

B- If using adaptive streaming, will it be compatible with iOS and Android devices?

C- For the live feed, can it be done with a free encoder such as flash media encoder? Is it possible to get adaptive streaming on the live feed as well?

I know it’s a lot of questions but the idea is to start on the right track. I really appreciate any help.

Thanks in advance.

For 1,2,3&4, mix and match these examples:

https://www.wowza.com/docs/how-to-schedule-streaming-with-wowza-streaming-engine-streampublisher

https://www.wowza.com/docs/how-to-control-stream-class-streams-dynamically-modulestreamcontrol

https://www.wowza.com/docs/how-to-switch-streams-using-stream-class-streams

Key frame alignment between bitrate version is required for multi-bitrate streaming. We recommend Expression 4 Encoder (though others such as Handbrake will probably work). Take a look at the Expression 4 Encoder presets in this article:

https://www.wowza.com/docs/how-to-encode-video-on-demand-content

A)

Wowza supports multi-bitrate (ABR) streaming to Silverlight client (smooth streaming), iOS devices (cupertino streaming) and Flash HTTP (sanjose streaming) directly using .smil files. Take a look at the multi-bitrate section of the vod tutorial

https://www.wowza.com/docs/how-to-set-up-video-on-demand-streaming

For Flash RTMP clients, Wowza supports Flash Dynamic streaming, for example the JW Player implementation here:

http://www.longtailvideo.com/support/jw-player/jw-player-for-flash-v5/16012/setting-up-rtmp-dynamic-streaming

You can bridge server-side .smil and JW Player dynamic above with this technique

https://www.wowza.com/docs/how-to-use-jw-player-with-adaptive-bitrate-streaming-from-wowza-streaming-engine

B) Yes, if the stream is h.246 video and AAC or MP3 audio

C) Yes, FMLE will work, and it can produce the required key frame alignment of each stream. There are EULA limitation on the use of FMLE.

The best way to do multi-bitrate live streaming is using the Wowza Transcoder. Publish one high quality stream and let the Transcoder transrate several versions.

https://www.wowza.com/docs/how-to-set-up-and-run-wowza-transcoder-for-live-streaming

Richard

The app/web server is used mostly to send players to clients. The client, e.g., a Flash player running in a browser, is what connects to Wowza. A web server serves static players, the app server can do all that it does to form the player as neccesary per request.

You can communicate directly with Wowza over http by creating HTTPProviders

https://www.wowza.com/docs/http-providers

For a great HTTPProvider reference take a look at the built-in HTTProviders which include source code. You can see by example how they are deployed though a VHost.xml:

https://www.wowza.com/docs/how-to-monitor-server-connections-load-and-application-statistics

And take a look at this Webservice example just for .NET

https://www.wowza.com/docs/how-to-add-a-web-service-interface-to-wowza-media-server-and-integrate-with-net-dotnet

Richard

It will take me a while but I will definitely go through all this information.

Thanks a lot.

I’m going through the information provided and it is being very helpful.

One thing though:

I’m a .NET developer (and not that good with Java). I will be creating a front end based on ASP.NET MVC.

Does anyone has any advice I how should I integrate this? How could my ASP.NET app trigger and execute the scripts on Wowza?

That’s the part I need understand now.