Digital Video for the Next Millennium


This publication is copyright 1999 by the Video Development Initiative (ViDe). The document may not be reproduced, in whole or in part, without written permission from ViDe, except that a single copy for personal use may be printed by the reader. Please direct all comments to the author of this white paper.

   


Section One: The Digital Video Process
Step Two: Sending Digital Video to the Desktop

Once a video is created, it is stored and then transported to the desktop for playback. Digital video created on a computer can be stored on the computer, opened and played back, just as a document is opened in a word processing program for reading, editing and printing.

A server must generally be employed to store and share a video over a network — whether a campus or building LAN or the Internet. Digital service includes real-time broadcast, non-streamed downloading or streaming to the desktop. Video service may be multicast ("one to many") where one video stream is served to many viewing clients or unicast ("one to one") where one video stream is served to one viewing client.

Real-time broadcasting converts analog video to digital on the fly. Analog video is received by the video server directly from a broadcast feed or a video camera, encoded in real time, and then served as a multicast video stream to many clients. Real-time broadcasting also includes the real-time delivery of files already in a digital format, such as a digital camera or satellite transmission.

Video files are meaningful only when forward progression, providing continuity of information, is maintained. A cartoon coyote cannot be running off the cliff in one frame and standing on the edge of the cliff, looking down, in the next frame, if the video file is to make sense to the viewer. The coyote also cannot be running swiftly to the cliff in one frame and moving slowly and jerkily in the next. Video data must be played in the correct order, with little or no packet loss, and with smooth, continuous timing; or else essential information will be missing. To insure that video files are usable at the desktop, the frames must be received in order and timed for playback. Digital video can be received at the desktop for playback in two ways: non-streaming or streaming video.

Non-streaming video downloads an entire video file and lacks the timing functionality for smooth packet streaming. (Some clients, such as QuickTime 3, will begin to play the video before the file has completely downloaded — this is referred to as "preloading" — and thus may simulate streaming.) A video server is not required to store and serve non-streaming digital video. Any server can store and serve non-streaming video, or the non-streamed file may be stored on the microcomputer hard drive or a CD-ROM and played back.

Digital video functionality, for opening the non-streaming file and playing it back on the client machine, is provided by the client software. Downloaded video is an option when the latency (elapsed time) required for the download process, which can range from several minutes to more than an hour, is not an issue.

Non-streaming video is also employed when a video server is not available to provide streaming. Non-streaming video files may also be provided when the maximum number of concurrent video streams supported by a video server has been exceeded. Most video server vendors do not support download of non-streaming videos. If an institution wants to offer nonstreamed video files for download, to insure high availability for the files, an FTP server or other download site must be separately provided.

Streaming video begins playback on the client as soon as enough of the video has loaded to begin and sustain playback at a continuous rate. Cache is established from random access memory (RAM) on the client desktop and is used to receive the file, insure that frames are in the correct order, establish timing, refresh compressed frames and check for dropped packets. The video file continues to download into the client cache even as the beginning of the video is being viewed. Video streaming relies on technology at the video server and at the client, such as caching and control bits, to receive and assemble a video in which all data bits play smoothly, in progressive frame order.

Video streamed via the Web must be transported within the IP architecture. Streamed video has low tolerance for the enforced reliability of TCP, which would keep an application waiting for the retransmission of dropped packets. UDP (User Datagram Protocol) is frequently used in place of TCP as a transport protocol for real time applications, such as digital video.

UDP uses the Internet Protocol (IP) to transport a data unit ("datagram"). UDP supports digital video because it does not divide the data stream into packets for reassembly at the client end. However, UDP also does not order the datagrams into the correct sequence. Applications using UDP must insure, at the receiving end, that the complete message has arrived, in the correct sequence order.




RTP (Real-time Transport Protocol) is a UDP protocol that provides payload type identification, sequence numbering and time stamping. RTP allows for packets to be transported out of order and reassembled in correct order at the receiving end. Digital video has low tolerance for disordered packets and dropped frames. It is used on the MBONE, for interactive audio and video, particularly conferencing sessions. RTP is used with a companion protocol, RTCP (Real-time Control Protocol), which provides periodic control packets to an application to monitor the quality of the data distribution.

RTSP (Real-time Streaming Protocol) is an application-level rather than a simple protocol, since it works with many transport protocols — TCP, UDP, RTP, and IP Multicast. RTSP was designed to support streaming multimedia in unicast and multicast applications. It provides increased functionality at the client end for playback, seeking, etc. and has been described as a "video remote control" for the computer. Among other features, RTSP allows for interoperability between server and client implementations from different vendors. RTSP can be used with RSVP to establish and manage reserved-bandwidth streaming sessions. Progressive Networks' Real Player G2 is an example of an RTSP client.

RSVP (Resource Reservation Protocol) provides Quality of Service (QoS) by allowing an application invoking RSVP to reserve end-to-end bandwidth, memory and CPU resources sufficient for the demands of the application. RSVP requires that all network components work together to provide guaranteed resources for the application, so all components — hosts, routers, hubs, etc . — must support RSVP. Although RSVP is a fairly mature standard, it is not heavily implemented, due at least in part to the requirement that all network components support the protocol.

IP Multicast requires a multicast delivery system to support one-to-many service for a data stream. All routers in the network infrastructure must be IP multicast-enabled. Some multicast applications, such as Progressive Networks' Real Media, are able to bridge non-multicast-enabled network segments. A process asks its host for permission to join or leave a group. IP multicast-enabled routers query their groups to identify the processes currently belonging to each group. On the Internet, IP Multicast is implemented on the MBONE and, increasingly, by service providers who will multicast your video to your authenticated users for a fee. Multicast is supported natively on advanced networks, such as vBNS and Abilene.

Quality of Service (QoS) provides a mechanism whereby a client can request sufficient bandwidth for an allocation. QoS sounds deceptively simple but is difficult to implement since the QoS protocol (such as RSVP) must be enabled on all network devices to insure that the bandwidth allocation is supported across the network. QoS becomes increasingly important as more clients request unicast video applications or participate in a multicast transmission. Most networks currently utilize admission control (users beyond a prescribed stream limit are denied service until a stream is freed) or "best effort," where all users share bandwidth equally and suffer equally, as bandwidth utilization approaches capacity.