All right my friends inside this video we're going to start talking about the next big application that
we are going to work on.
Now I'm really excited about this next application because it is going to be far more complex and advanced
than anything we've worked on previously.
So let's just dive right in and talk about what we're going to build.
First off a quick little disclaimer.
The application that we're going to build at first glance is going to look crazy complicated and it's
going to look like there is a lot of kind of back end servers and whatnot do you have to put together.
I can tell you right now that at the end of the day the application we're going to build is going to
have a total 100 percent focus on react and redux.
That's why we're here for it.
That's all we're going to learn.
We're going to put together a little bit of backend servers but that's going to be towards the end of
the application.
And at the end of the day it's going to be pretty darn straightforward much easier than you might think
it will be.
OK.
So enough of that.
What are we going to build.
Well essentially we're going to build a clone of a very popular web application called Twitch TV which
thought TV is extraordinarily popular.
It is used by people all over the world to record video on their desktop and stream it live to viewers
across the world so other people can view some streamer inside their browser and see some continuous
stream of video which is really popular for video gaming.
And so you'll see a lot of PC games on here and some P.S. for games as well but it's also used for other
topics as well.
Me personally I really like this one particular topic called science and technology.
It has a lot of streams around people building software so you can watch other people building software
and in general just kind of fun to see how other people approach problems and whatnot.
All right.
So this is more or less what we're going to build.
There's going to be you know one or two small little tweaks because twitch is a very very large product.
So we're going to really just be building out the core experience which is streaming video.
Now one thing I want to tell you right now is that we are going to have the ability inside of our application
to stream video from our desktop.
However the actual twitch backend servers like the actual twitch application is extraordinarily complex.
OK I can tell you that right now twitch is a like million dollar billion dollar product and it has thousands
and thousands of years of engineering time put into it to make it work as it works.
So we're going to build something very similar but it's going to be like a pretty straightforward approach.
I just want to kind of set that expectation right now.
Okay.
So on a first now began by showing you a couple of diagrams to help you understand exactly how twitch
or video streaming in general works right.
Okay.
So here's what's going on at a very simple level behind the scenes.
Essentially we have some streamer running a computer and on their computer they are running some streaming
software very common software to be running to stream video.
It's called Open broadcaster software that is an actual program.
So it's a program called Open broadcast or software or OBSS for short as you were watching this video
of me talking and presenting to you right now.
I actually am using OBSS right now.
So this is obvious that I am using OBSS not only used for streaming video it is also used for recording
your desktop to a video file as well so many purposes to Oh yes.
Now there are other uses or other software other programs to use to streaming but OBSS extremely popular
in the community.
So when you run OBSS on your computer thats going to essentially record your desktop and stream that
video to some outside server.
One way of putting this video streaming service together is to create something called a Aarthi MP server
or a real time messaging protocol.
This is a specialized server that is going to receive an incoming video feed and then broadcast that
video feed out to a bunch of different viewers who can watch from their browser a RTM server is not
limited to just one stream or at a time.
So we could potentially have several different streamers all sending video to our single server right
here.
And then many different viewers could be watching each of these different streamers at the same time.
And you and I are going to put together this RCMP server but we're going to use a third party package
to make it really really easy and straightforward.
Remember Like I said just a moment ago this application is going to look really complicated but the
our team server like the video broadcasting part is going to be incredibly straightforward and simple
for us to setup so don't feel like that's going to be a really hard thing to do.
All right.
So this is kind of like a very simple and straightforward approach of the video streaming process.
But in a real streaming application like twitch and the one that you and I built there's actually one
other server inside this mix.
You see the RCMP server here is only about streaming video.
That is its sole purpose.
But we also have some other information that we want to share with our users or example.
A user is going to need to know what streams are currently broadcasting or what streams exist inside
of application.
So we're going to have a separate API server up here.
That essentially is just going to store a list of all the different streams or channels that are available
inside of application.
So a user is essentially going to first inside the browser visit that server and see the list of streams
that are available.
Once they see an appropriate stream they can then select that stream and that will essentially make
a request over to this Aarthi impedes server to get the live video feed and then show it on the screen
to the user inside their browser.
So in total we're really going to have three different moving pieces here.
We're going to have our re-act application running inside the user's browser.
We're going to have a tiny tiny API server that essentially lists out all these dreams or channels that
a video can watch.
And then finally we're going to have this RCMP server that is actually responsible for handling the
video streams itself.
Now the like I said the RCMP here really straightforward very simple to put together the API right here
that's going to record what streams or channels exist even more straight forward.
So these two API servers right here really simple very easy put together.
Like I said our unending focus is going to be on the react in redux application.
OK so now that we have a little bit better idea of what we're going to build Let's take a quick pause
right here.
We'll continue in the next step in the next video excuse me and we're going to start taking a look at
a couple of mock ups that are going to tell you exactly what our application is going to look like and
how it's going to work.