Scale Up With a Live Stream Repeater in Wowza Streaming EngineFebruary 18, 2021
For enterprise, government, or surveillance organizations looking to scale video delivery across a large private network, this video details how to do so using Wowza Streaming Engine from end to end. A live stream repeater configuration allows you to make the same stream available from multiple edge servers at the same time, thus reducing the load on the origin server.
Watch Tim Dougherty, Wowza’s director of sales engineering, demonstrate how it works in the video above. You can also take a peek at the step-by-step process in our documentation.
Full Video Transcript
Hi. I’m here with Tim Dougherty once again. My name is Justin Miller and we are here to talk to you about configuring a live stream repeater in Wowza Streaming Engine. Tim, why do we want to configure a live stream repeater? Why do we need a live stream repeater?
Well, this workflow that we’re going over today would be ideal for somebody wanting to build their own private streaming configuration. I am in charge, or I’m part of a team, supporting a giant company, and we have our own land links. We have our own facilities and for security purposes, a lot of times finance organizations, highly compliant organizations that deal with HIPAA and a lot of confidential information, they’ll use a closed streaming workflow just so they can go back to their boss and say, “None of this video data ever goes outside the internet or outside our secure VPN environment.” It’s a real standard way of scaling a video workflow 100% using Wowza Streaming Engine.
All right, well, hey, let’s see how to set it up.
This is the article that you’ll find. It’s in our Wowza Streaming Engine section of our website. It’s simply repeater. If you were to type in live repeater origin edge, you probably would be directed to this article.
I’m going to demonstrate this not step-by-step necessarily, but it just gives you a little bit of background about it, how to set up a live origin application, which we’re going to do, how to set up an edge application, which we’re going to do. All of the steps are in here. You can do all of this in Wowza Streaming Engine Manager. You don’t have to access any custom files or anything like that. It’s a very core aspect of our Wowza Streaming Engine software.
The first thing you want to do is determine where your origin servers are located. Right here, I have one Streaming Engine that’s up and running. This is my origin server. It’s under the domain local.techdemos. If you just kind of keep one eye on my address bar. I have another Wowza Streaming Engine running on a VM, and this is Ubuntu 18. This is a VM that I have access to. That’s going to function as my second origin application. Because what I’m going to set up here is the failover capability, meaning if that edge server is no longer able to grab content from origin server one, it’ll switch over to what you see in front of you, origin server two. Then on the third server is where I’m actually going to create the edge application.
First thing I’m going to do is make sure that I have streams coming into my origins. I have just a regular application called Live, no incoming stream, same thing on the other origin server, the desktop, main Application > Live > Incoming Streams. I’m going to go ahead and start the ClearCaster encoders.
There’s my primary stream and this’ll be my secondary stream. I have two live streams coming into my origin app, so I should see that now. There’s ‘myStream.’ Then over here in the other origin, I’ve got ‘myStream.’ I’ve two live sources, two origin servers, really straightforward.
I go over here to my third server. This one’s called Ubuntu server. You can see up here. I’m going to create a live edge application. If you’re logged into Wowza Streaming Engine, you go to Applications and then you would do Add Application, which is open by default. I’m going hit Live Edge. I’m just going to call this ‘edge.’ I’m going to trim it back a little bit because I’m not doing Smooth Streaming or Adobe HDS.
Then this is where I enter in the URLs for my particular origin servers. Fortunately, in this case, it’s fairly intuitive and I’m going to do ‘10.0.1.9/live’. I need to put the port in there. Then this one below me is a very similar IP address. I just copied and paste it, ‘10.0.1.11’. I’ve entered those two and it’s very much implied, the primary and the secondary. Theory on the workflow is as soon as the primary goes away, the secondary will kick in.
I’m set up and I’m ready to go. Now I want to connect a player to it. This is where I’m going to go over to THEOplayer, which I have ready for you. Before I do that, I’m going to bring up some monitoring statistics. This is origin server number one. You can see it has one connection coming in. That’s from the encoder itself, should see the same thing on origin two. Then on my edge application, nothing’s going on.
Origin one, we have one edge application, zero. I’m going to go ahead and start my player here. That’s my primary stream coming in. The URL syntax is the domain. In this case, it’s running on port 443, which is implied with HTTPS. Edge application, remember I’d created that edge application and the stream and then playlist. That’s what’s actually happening. It’s pulling it from the edge now.
On the edge server, we see one connection. Shortly it’ll probably render another one. It might’ve just popped up since I started talking. We’ve got an HLS connection here, which is this player over here. Then we have a connection going back to the origin server.
Now the origin server has two. If you remember earlier, it only had one. I wish I had an animation to demonstrate this, Justin, but I hope this is making sense. This is the origin server number one. Number two still just has the encoder connection. Any questions so far?
Nope. Nope. That’s making sense. Absolutely. It’s a little difficult. I hear what you’re saying to visualize it because you’re going back between just two tabs and it’s hard for me to remember which one is the origin, which one’s the edge.
I did my best to explain that, but as you work with it, you’ll become accustomed to thinking almost compartmentally. I am on server one. I am on server two. I am on my edge server.
The cool part of it was when you scale all the edge servers can just be photocopied, essentially. You can take one edge server and pre-configure it and put it out across many servers.
Let me just do one more thing here, Justin. I’m going to turn off the primary source and fail it over to the secondary. Right now you see this footage that I shot from the Puget sound, which is just basic iPhone photography. Don’t be too impressed. It should fail over to some other stock footage. I’m going to go over here to the ClearCaster 10.0.1.9 is my primary, so I’m going to stop that. I’m going to go back and see what the player does.
Now, this could take anywhere from 20 to 30 seconds, depending on how many chunks have been effected with the outage. We’re looking back in time about 15 seconds right here. But we might see the player pause. If we do, that’s not entirely unexpected. But what we should do is it should switch over to some drone footage here. There it goes. Wait, no, that was a scene change. It should be coming over here pretty quick though.
I know that time delay of possibly up to 45 seconds sometimes.
There it goes. You can see now that it switched over gracefully to a shot that I shot with my drone. It obviously worked. It doesn’t fail over back to the primary. If I start the primary again, the clients will stay connected to the secondary origin.
Yeah. This was just a blank part in the video. That’s kind of the end-to-end setup.
If you’re interested in scaling in your own environment, you need a primary and a secondary failover. Of course this supports all of the outbound protocols that Wowza can offer MPEG-DASH, Apple HLS, SRT, et cetera. Well, SRT would be a different configuration, but ultimately within this framework, you can scale yourself using Wowza technology.
Well, thank you for showing us, Tim. I always like looking at it and also thinking about how that can be integrated with ClearCaster. As I’m looking at all the ClearCasters that you have connected, it just makes me think of setting up an edge server like you’re talking about and having many connections ready to go that way.
Definitely. Also bear in mind that load balancing schemes can be integrated into this as well. Wowza does provide a load balancer free of charge. We do have advanced ways of setting this up. We love to do custom work. Thanks for watching.
Thank you everybody. Tell Tim that he needs to get out of the van by the side of the river and get back to his house. Get home, Tim.
That’s right. I’m streaming in a van down by the river. How about that? Is that dry? Is that too dry? It’s too dry.
All right. Well, for the rest of you then, happy streaming.