This tutorial will explain the concept of streaming video on the net. If you already have experience with streaming audio, you shouldn’t really need this, as they are both very similar. If you on the other hand have never done any streaming, this is a must to read first.
For this tutorial you will need nothing more than the ability to read, and understand at least some English. I can say I’m all that good in English myself, so I will use a lot of basic terms when writing, and I hope to be at least mostly understandable.
I hope to keep this tutorial short and on the subject, so that you can quickly jump on to what you came here for, learning to stream video. I will not go trough any programs in this tutorial, and this tutorial can therefore count for non-NSV streaming too.
Streaming, what is it?
What is streaming? Hopefully you should know what streaming is. Streaming is to take a piece of data and gradually send it over to a receiving end. When you go to the net and see a flash video or you watch video from the net trough windows media player or listen to music over the net, you are streaming.
In the case of streaming live video(pre-encoded, or live-encoded) we talk about streaming the video as it is needed. By that I mean that we only send the video/audio data so that the player can keep on playing, we don’t send more than the player is currently playing, nor do we send less. If we send less that the player need, we get buffering. Buffering is when the player isn’t getting the data fast enough, so it will stop playing, and store a certain amount of data so that it has something to go on.
When it is buffering, it is usually something wrong with the one sending the data, but it can also be at the receiving end that the data is failing. The one sending the data can be sending to too many at one time, this is usually a problem with streaming, as the data output ability on the Internet is lower than the data input ability.
When you are encoding video or audio, you can set a bitrate. The bitrate is the amount of data per second of playback. Let’s say you have a ten second long video, and the video has a bitrate of 300kbps(Kilobit per second). That means that the video file would be 300*10 kb(kilobit) big.
The higher bitrate you have, the better quality on the video, but the higher bitrate also means more to send, and the more you have to send, the faster you will go out of bandwidth.
Bandwidth is the amount of data you can send or receive per second. Knowing this it is actually very easy to figure out how much you can set the bitrate to, and how many people can stream from you at the same time.
If you have a bandwidth of 1mbit(1 megabit) = 1024kb(kilobit), and you want to stream to 10 people at the same time. You can then just do this: 1024/10 = 102, to figure out the bitrate you can have to serve ten people with your bandwidth.
To figure out how many people you can serve with a certain bitrate, just do this: bandwidth/bitrate = 1024/102= 10 people.
When talking about streaming video and audio, we ALWAYS use kilobit(kb, Kb), and it’s easy to confuse this with kiloBYTE(kB, KB) notice the B in kb and KB. small B means bit, big B means byte. One byte is 8 bit, so confusing the two can have drastic effect on the bandwidth calculations!
When you stream audio and video, you always need a source. The source is the person/computer who have the original video and audio to be shared. It might be pre-encoded files on ones hard-drive, or video and audio from a webcam and mic that is encoded on the go, or a mix of both. Without the source, your stream won’t have anything to show, and will thus be a dead stream. The source is usually using a sourcing program, that is either a gui or command line program. The program takes the input of video/audio and spits it out to the server.
The server is the program that takes the audio/video stream from the source, makes exact copies of it, and serves it out to the other users. The server is usually stationed at a place with high bandwidth and fast computer. The server can also not have a firewall or router blocking it from the net, or else users won’t be able to find it.
As you see, you will need both the source and the server to have a functioning stream.
But having a stream is no good without clients.
Clients are the users, watchers or listeners, all up to what you want to call them. When they want to watch/listen to a stream, they connect to the server trough a IP and a port given out to that cause.
I said this was gonna be quick, but hopefully you would have picked up the basics of the terms and meanings of what is used with streaming. After this you are ready to head on to tutorial 1, where you will start with the pre-source, meaning making something for the source to use. In tutorial 2 you will learn how to be a source, and will be able to set up video streaming. In tutorial 3 you will learn how to be a server, and set it up to both audio and video use. and lastly, in tutorial 4 you will learn about live-encoded video and audio, that also goes as being a source.
I hope you learned something, and if you have any questions, comments or just want to drop by and say hi, you can leave a comment here, or send me an E-mail. Have a good day 🙂
Quick F.A.Q.(Frequently asked questions)
- What is the IP and port?
- The IP is what identifies your computer on a network, in this cae on the world wide web. It is usually a number like this: 126.96.36.199 or 254.15.234.13 or any other combination of four, three-digit numbers.