Kien A. Hua and Mounir Tantaoui
School of Electrical Engineering and Computer Science
University of Central Florida
Orlando, Florida, USA
Video on demand (VOD) is a key technology for many important applications such as home entertainment, digital libraries, electronic commerce, and distance learning. A VOD system allows geographically distributed users to play back any video from a large collection stored on one or more servers. Such a system may also support VCR-like interactions such as fast forward, fast rewind, jump forward, jump backward, and pause. To accept a client request, the VOD server must allocate enough resources to guarantee a jitter-free playback of the video. Such resources include storage and network I/O bandwidth. Sufficient storage bandwidth must be available for continuous transfer of data from storage to the network interface card (NIC), which in turn needs enough bandwidth to forward the stream to remote clients. Due to the high bandwidth requirement of video streams (e.g., 4 megabits/second for MPEG-2 videos), server bandwidth determines the number of clients the server is able to support simultaneously . The simplest VOD system dedicates one video stream for each user (Unicast). Obviously, this approach is very expensive and not scalable.
To support a large number of users, requests made to the same video can be batched together and serviced with a single stream using multicast. This is referred to as Batching. This solution is quite effective since applications typically follow the 80-20 rule. That is, 20% of the data are requested 80% of the time. Since majority of the clients request popular videos, these clients can share the video streams and significantly reduce the demand on server bandwidth. A potential drawback of this approach is the long service delay due to the batching period. A long batching period makes the multicast more efficient, but would result in a long wait for many clients. Some may decide to renege on their service request. On the other hand, a batching period too short would defeat the purpose of using multicast. This scheme also has the following limitation. A single video stream is not adaptable to clients with different receiving capability. Supporting VCR-like interactivity is also difficult in this environment.
In this chapter we present several cost-effective techniques to achieve scalable video streaming. We describe a typical architecture for video-on-demand streaming in Section 2. In Sections 3 and 4, we discuss periodic broadcast techniques and multicast techniques, respectively. A new communication paradigm called Range Multicast is introduced in Section 5. Techniques to handle VCR interactions are presented in Section 6. Section 7 describes other techniques that deal with user heterogeneity. Finally, we summarize this chapter in Section 8.