In Part 1, I introduced how Progressive Download works and in Part 2 I will talk about Traditional Streaming.
Traditional Streaming, as one of the video streaming technology, uses special media server to serve content. Here are some key characters of traditional streaming as showed in Figure 1 below.
Traditional streaming uses special media protocols, such as RTSP(Real Time Streaming Protocol), RTMP(Real Time Messaging Protocol) and RDT (Real Data portocol).
- Take RTSP as a example. Traditional Streaming will send the video as a series of small packets in sequence, the format is known as RTP packet. RTSP this protocol is stateful, which means it tracks client’s track till client disconnected from the server.
- The RTP packet size is around 1 Mb for 1 mbps quality video and these packets will get transmitted over UDP or TCP transports.
- For traditional streaming, it defines a buffer size on client side, for instance, 5 seconds. If there is only 3 seconds of content in your buffer now, no matter how long you wait, streaming server will only serve another 2 seconds of content, which results in almost no bandwidth waste. As Figure 2 showed, even client pauses, streaming server will not load more than 5 seconds of content.
However, there are still potential problems about traditional streaming:
- It could be expensive to purchase a media server. And you won’t be able to leverage on your existing web servers.
- The transmit of media packets is through UDP or TCP protocols. There are some proxies or gateways block UDP packets. For TCP, it is a delivery-guaranteed protocol, which will result in a lot of overhead.
- Similar to progressive download, once the video is encoded at certain bit-rates, client will receive that quality of video content regardless what kind of CPU condition and bandwidth network he has.
- Traditional Streaming is harder to scale. As a stateful protocol, traditional media server maintains one-to-one persistent connection with each client.
Lastly, I will introduce a hybrid streaming technology of both: HTTP-based Adaptive Streaming in Part 3.