Progressing on our theme of video streaming, we're going to talk about encoding and distributing your stream.
This is the point where we need to create the actual video data that will be transmitted to your viewers computers.
his is both similar and very different to encoding a video from your video editing application (such as Adobe Premiere). In both cases, you're talking a video and audio source and creating a new consolidated video from it. For streaming, however, the encoding has to happen in real time if it's not encoding at least the number of frame per second that your stream is set up to transmit, you're in trouble as the video data won't be available to send out. Therefore, video stream encoders are designed to encode a specific video type very quickly.
Additionally, you have viewers with a variety of needs and capabilities. If I'm at home watching your service on my 46-inch television, I would prefer to see a high-quality HD video stream. If, however, I'm on a bus watching on my phone using my mobile carrier's data plan, HD isn't very important because the picture is so small, and I want you to use up as little as my data plan as possible.
Video encoders are designed to take your high-quality video feed from your camera or switcher and turn it into one or more video streams to meet the various needs your viewers may need. And it's going to do that very fast in order to keep up with the real-time needs of video streaming. You would probably have it encode at least a higher-quality HD video stream for the home viewer, and a low resolution, lower quality stream for mobile viewers.
Once your stream is encoded, it needs to get to your viewers. In theory, they could connect to your streaming encoder and watch it directly. However, you would have to have enough upload bandwidth in your Internet connection to handle the sum of all the data needs for each viewer. If you had ten viewers watching an eight Mbps HD video stream, your upload bandwidth would have to be at the very least 80 Mbps. That's a lot of bandwidth, and for a commercial customer like a church, that is very expensive. If you had 200 viewers you'd be in trouble!
Instead, what you do is contract with a CDN a content distribution network. This is a company with massive amounts of internet bandwidth. You send your video streams to the CDN, and they take care of sending it out to all your viewers. So, all your church needs is enough upload bandwidth to get your one or more video streams up to the CDN, and they take care of it from there. You simply provide the URL to the stream as given to you by the CDN.