Scalable Continuous Media Streaming Systems in .NET

Generate QR in .NET Scalable Continuous Media Streaming Systems
Scalable Continuous Media Streaming Systems
QR Code Scanner In .NET Framework
Using Barcode Control SDK for Visual Studio .NET Control to generate, create, read, scan barcode image in .NET applications.
Server
QR Code Printer In .NET Framework
Using Barcode printer for Visual Studio .NET Control to generate, create QR-Code image in Visual Studio .NET applications.
Send data
QR Code JIS X 0510 Recognizer In .NET
Using Barcode reader for .NET framework Control to read, scan read, scan image in VS .NET applications.
. . .
Barcode Encoder In VS .NET
Using Barcode creation for VS .NET Control to generate, create bar code image in Visual Studio .NET applications.
Client
Barcode Reader In .NET
Using Barcode recognizer for .NET Control to read, scan read, scan image in Visual Studio .NET applications.
Send req
Encoding QR Code In Visual C#
Using Barcode creator for VS .NET Control to generate, create QR Code image in .NET framework applications.
Present data Delay
QR Code Drawer In .NET Framework
Using Barcode generation for ASP.NET Control to generate, create QR Code image in ASP.NET applications.
Delay = Data Size/Transmission Rate
QR Printer In VB.NET
Using Barcode creation for .NET Control to generate, create QR Code image in VS .NET applications.
Figure 1.5 The start-up delay in the download data delivery model
UPC-A Supplement 5 Generator In .NET
Using Barcode creator for .NET Control to generate, create GS1 - 12 image in Visual Studio .NET applications.
Server
GS1-128 Creator In VS .NET
Using Barcode drawer for VS .NET Control to generate, create UCC - 12 image in VS .NET applications.
Send lots of data
Drawing Barcode In Visual Studio .NET
Using Barcode generator for .NET framework Control to generate, create bar code image in VS .NET applications.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Painting ISSN - 10 In .NET Framework
Using Barcode creator for VS .NET Control to generate, create ISSN - 13 image in .NET applications.
Client
UCC.EAN - 128 Printer In .NET Framework
Using Barcode generator for ASP.NET Control to generate, create EAN / UCC - 13 image in ASP.NET applications.
Send req
UPC - 13 Maker In Java
Using Barcode creator for Java Control to generate, create GTIN - 13 image in Java applications.
Playback movie A long delay
Code 128 Generator In Visual Basic .NET
Using Barcode maker for .NET Control to generate, create ANSI/AIM Code 128 image in .NET applications.
Delay = Data Size/TransmissionRate = 5.4GB 8/8Mbps = 1.5 hours
Generating Bar Code In Visual Studio .NET
Using Barcode maker for ASP.NET Control to generate, create bar code image in ASP.NET applications.
Figure 1.6 Calculating the delay for downloading a 5.4GB video for playback
Encode UPC-A Supplement 2 In C#.NET
Using Barcode maker for VS .NET Control to generate, create UPC-A image in Visual Studio .NET applications.
can also be decoded and played back. For example, video data are composed of video frames, which can be played back once all the data of a frame have been received by the client. Taking advantage of this property of continuous media, we can then modify the download model into a streaming model where data are being played back while data reception is in progress, as depicted in Figure 1.7. Speci cally, after sending a request to the server to begin the streaming process, the client will wait for the rst parcel of data to arrive and then begin playback while receiving the second parcel of data, and so on. Thus, the data transfer and the playback processes are pipelined, therefore signi cantly shortening the delay to begin media playback.
ECC200 Generator In Java
Using Barcode generation for Java Control to generate, create DataMatrix image in Java applications.
Introduction
EAN 13 Generation In Visual Basic .NET
Using Barcode encoder for .NET framework Control to generate, create EAN-13 Supplement 5 image in Visual Studio .NET applications.
Send a parcel of data Server ...
Bar Code Generator In VB.NET
Using Barcode drawer for .NET Control to generate, create bar code image in Visual Studio .NET applications.
Client
Send req
Send 2nd parcel of data
Present a parcel of data
Server ... ...
Client
Send req
Present 2nd parcel of data
Send ith parcel of data
Server ... ... ... ... ... ... ... ...
Client
Send req
Delay
Present ith parcel of data
Figure 1.7 Playback of partial media data in the streaming model
Scalable Continuous Media Streaming Systems
Compared to the download model, there are now two additional requirements for streaming to work. First, the media object must be decomposable into smaller fragments that are independently or progressively (i.e., making use of the current and already received fragments) decodable and presentable. Most continuous media such as audio and video possess this property. Second, to ensure the timing integrity in presenting the media object, we will need to ensure that each and every media fragment can be delivered to the client before their scheduled playback time. This is also known as the continuity requirement and is one of the key performance metrics used in designing and evaluating continuous media systems. With the rapid advances in networking technology one may wonder if in the future our networks will be equipped with so much bandwidth that the transmission time will become insigni cant, even using the download model. This is indeed a valid question but in addition to allowing playback to begin earlier, the streaming model also offers another signi cant advantage pipelining of multiple concurrent streams. Speci cally, media servers often need to serve many clients concurrently. When multiple clients request service at around the same time, there are two options for the media server if the download model is used it can either serve the clients one after the other in a sequential manner, or it can serve them simultaneously. In the former, all but the head-of-line client will need to be queued and thus experience additional queueing delay when waiting for service. If the download model is employed, then even in a very high bandwidth network the waiting time will still be signi cant. In the latter case, serving multiple clients concurrently will reduce the network bandwidth available to each client and thus increases the download time proportionally. By contrast, the streaming model does not suffer from this problem as playback can begin once an individually decodable fragment of media data is received (Figure 1.8). Moreover, as the media data are often transmitted at the media playback data-rate, the start-up delay is in fact independent of the number of clients requesting service simultaneously, as long as the media server and network capacity are not exceeded. This unique multistream pipelining property can signi cantly reduce start-up delay especially during high system utilizations.
Client #1
Server ... ... ... ... ... ... ... ...
Client #2
Figure 1.8 Multistream pipelining in the streaming model
. ..
Introduction
1.5 Challenges in Building Continuous Media Streaming Systems
The previous sections outlined the general architecture of continuous media systems and the concept of media streaming. In this section we will discuss the main challenges in the design and implementation of continuous media streaming systems.
1.5.1 Continuity
As brie y mentioned in Section 1.4, once we adopted the streaming model for media data delivery, we will need to ensure that media data fragments are delivered to the client in time to maintain playback continuity. A key decision then is to decide when to begin playback after the streaming process is started. As depicted in Figure 1.9, once playback begins, the playback time for all media data fragments will be xed (ignoring interactive playback control). Thus, if the client defers the playback start time, the whole playback schedule will be deferred as well, thereby allowing more time for data delivery. We cannot, however, defer playback inde nitely as that will increase the start-up delay experienced by the user a crucial performance metric. As we will see in the rest of the book, these two con icting objectives will occur frequently in the design of continuous media streaming systems.