Sunday, 10. September 2006, 19:03:28
VIDEO STREAMING
-- Short Overview --
Many question I've heard, "what is video streaming? then what is the advantages of video streaming?" Hummm..hope this article can help any others to understand what video streaming is.
Basicly, it's very simple to learn and understand about this method. Now, lets step forward =)
Video streaming is a method to stream video (and also audio) file from server to client so client can play that file without save it first in client's hard drive. Now it is clearly enough about the purpose of this method (streaming-red) right? So, here, the server save video file in its hard drive and the client just need to ask any request to server what video that client wants to play. Ok, lets see the picture below.

In that video streaming server, there is 4 video that ready to accessed by client. In a conventional method, if the client want to watch miyabi1.avi, that client have to download the file first until all file has transfered and saved well in client's hard drive before it able to play. For most of people, it is wasting their time. For another people that have no space in their computer that problems may make them confused because they can't enjoy the film (very interesting one
) except they agree to delete any file in addition to make some space in their hard drive to save that video file.
In streaming methods, the client no need to wait or make some space in their hard drive anymore. They just need to "click" what video they want and in several seconds (no more minutes), they will see the video played well in their player. How it works? Now, lets see the technical part after this =).
-- Concepts --
For example, miyabi1.avi has 600MB in file size. And then when client request to access that file, this file will be transferred part by part, packet by packet, while the client's player will directly play the part that has been received. Is it clear? I hope so..Ok, stop there..next, in video streaming, we usually hear about bitrate, framerate, codecs, file format, and so on. Lets talk about :
1. codecs
Codecs (coder-decoder) is an algorithm in building and rebuilding a digital video or audio. There's so many codecs that we usually hear like mpeg, mpeg1, mpeg2, mpeg4, h263, h264, YUV, RAW, etc for video and mp2, mp3, aac, ogg, wav, etc for audio. Each codec has different secification because it build from different algorithm. But nowadays, in streaming, the the top three video codecs for streaming is mpeg4, h264, and h264 and for the audio, both of them is almost same.
2. formatsWe usually find this format for video file : .avi, .mpg, .mpa, .mov, .rm, .rmvb, etc. Most of people have some problem in uderstanding this, usually they think formats is same with codecs. I'll show you that this is totally different. In a movie, video and audio file should be played together. This means the audio and video file needs another file to mix both of them. This called muxer or container. So here, the video and audio file will be muxed into one file. Just like this, for example file miyabi1.avi is build from video that using mpeg4 codecs and mp3 for the audio. If that video and audio didn't muxed before played, we need two player there, one for playing the video file and the second one is to play the audio. Its horrible right? With muxing it into just a file, we only need one player to play that movie =). So, the conclusion is in miyabi1.avi video format it contains mpeg4 video and mp3 audio. Each format above has unique specification that one format can only contain x codec and can't contain another codec depend on the algorithm.
-- Measurement Parameters --In research, we need to measure all of parameters that indicates the quality and many important things to get the most optimal configuration. Here is the example of parameters that usually used in streaming :
1. bitrateUsually shown in kbps (kilo bit per second) this mean that in one second there is x bit of video file that transferred from server to client. The bigger bitrate will produce higher quality, but there's the trade off for the network. For example, miyabi1.avi using mpeg4 codec with 700kbps for its bitrate. This mean, in one second there is 700 kilobit video file transferred to the client continuously. So, if the movie duration is 2 hours this mean that along that time tha server will continuously sent 700 kilobit packets to the client. What is the problem could occured here? Yes, the network will be used to transfer this packets for 2 hours continuously. There will be no problem if there just one client, but what happened if there is 100 client in that network that usually 'only' have 100Mbps for the bandwidth? It will be 700kbpsx100 = 70000kbps = 70Mbps that means the bandwidth is almost full while in that network there many application used there (chatting, browsing, download, etc). In the other word, this packets will flood the network and it could disturb any activity there. Nice problem right? So here, we need to think that trade off in addition to produce optimum configuration (low bitrate but the video is still acceptable).
2. delayDelay, here in streaming contains of two kinds, first is the encoding delay and the second one is transmition delay. There is one more delay, propagation delay, but this delay can be ignored because of its value is almost in zero result. Encoding delay is the time that worthed for building a video file. This delay usually appears when we use a live streaming (I’ll write about this topic later). The second one, transmition delay, is the delay from server to client. In a local area network, this delay may not be a problem, but in internet network, this delay will be a big problem in streaming. To reduce the delay we can reduce tha amount of bitrate of the video file but this cause a lack video for the trade off.
3. jitterJitter is a variable time for the incoming packets. We know that the packets sent in a different route that may cause different time for its departure to the client. This jitter problem can be solved using a “buffer” in client’s player. So here, the client will buffer the packet for a while before play the video in so the video that played is still smooth without jerky motion there.
4. lossPacket loss is a standard fenomena in data communication. For some streaming method, the packets transmitted using TCP. As we know, TCP is a protocol that gives warranty for the packets so there will no packets loss in transmition. But now, the standard protocol that used in streming is UDP that allow loss packets. In UDP, the most important thing is the packets sent faster than else. So in this case, we have to count the packets loss to calculate how effective our streaming method.
5. PSNR (Peak Signal to Noise Ratio)PSNR is an objective value used to rate the video quality after it transmitted over the network. We know that in the network (RF mode) there’s so much noise that always disturb the signal. To measure the PSNR, we can use a software that compare a video from a server and the video that played in client. It’s so simple in practical, we only needs to capture a video in client’s player and compare it with the source (original) video in the server.
6. MOS (Mean Opinion Score)Mean opinion score is a subjective value that can got from a survey. Here, we just need some user to give a mark for the video that they watch. The value usually is “bad” for the worst and “excellent” for the best. Enough here,.there no technical things that can be explained anymore =).
-- end section --There's just the most important to understood in streaming, but there's much more important parameter that we should understand if we want to do a little deep research in streaming. I wont write it here, because I have no time to write it all =). I hope this article can help anyone to understand a basic streaming, all we need is just learn and learn more.