A Survey on Adaptive Multimedia Streaming

Internet was primarily designed for one to one applications like electronic mail, reliable file transfer etc. However, the technological growth in both hardware and software industry have written in unprecedented success story of the growth of Internet and have paved the paths of modern digital evolution. In today’s world, the internet has become the way of life and has penetrated in its every domain. It is nearly impossible to list the applications which make use of internet in this era however, all these applications are data intensive and data may be textual, audio or visual requiring improved techniques to deal with these. Multimedia applications are one of them and have witnessed unprecedented growth in last few years. A predominance of that is by virtue of different video streaming applications in daily life like games, education, entertainment, security etc. Due to the huge demand of multimedia applications, heterogeneity of demands and limited resource availability there is a dire need of adaptive multimedia streaming. This chapter provides the detail discussion over different adaptive multimedia streaming mechanism over peer to peer network.


Introduction
The drastic improvement in communication networks over the last few decades has led to a rapid increase in the demand for data transmission. A rise in the demand and supply of media content has been witnessed due to the variety of multimedia platforms available over the internet. Some of the platforms that provide multimedia content over the internet are YouTube [1], Net TV [2], and IPTV [3], etc. Among all data that is transmitted over P2P networks; over 90% of the data is due to video transmission. YouTube is the second most popular site according to the Alexa Ranking System [4]. Demand for multimedia content is increasing due to its widespread use in the communication, entertainment and education sectors [5]. Two different approaches used for video transmission over the network are Video on Demand (VoD) and live video streaming. VoD approach is more competent and convenient for the user, as the user can demand the video whenever they choose to rather than watching it at a particular time. No real time constraints are applied and no broadcast time is fixed only during which the video can be watched [6]. But live video streaming approach follows a specific broadcast time. If a user wants to watch the video, they have to watch it during that broadcast time. The network requirements for live video streaming are more as compared to that for video on demand. Some of the famous commercial P2P live video streaming systems are UUSee [7], Sopcast [8], PPLive [9]. In live video streaming, video transmission is more complex as compared to that in VoD. The complexity of the network has increased over time due to the increase in demand for live streaming. Figure 1 shows the categorization of the video traffic over the Internet. Overall Compound Annual Growth Rate (CAGR) of traffic is 24% between the years 2016 and 2021. From the figure, it is also clear that demand for Internet video increased from 51 to 67.4% in the same time span.
Further, this Internet video was also subcategorized to understand the demand of different video categories over the Internet. From the Figure 2, it is easily observed that there is a huge demand for live Internet video and there is 10% increment in it in the period of 2016-2021. Some of the major highlights of video over Internet is describe in ( Table 1).
Streaming or media streaming is a technique for transferring data so that it can be processed as a steady and continuous stream. Video streaming allowed to play the video without completely downloading the file. The Distinguishing distribution techniques for multimedia distribution applies specifically to telecommunication networks, as most of the delivery systems are either inherently streaming (e.g., radio, television) or inherently non-streaming (e.g., books, video cassettes, audio CD's).

Classification of video streaming
Generally, classification of media over the Internet can be done into two ways Video on Demand (VoD) and Live streaming [10].

Video on demand
Video on demand is a recent exploitation in information storage and communication. Entertainment has undergone several positive changes in the last decade. Video on demand is one of them. It is a technology which combines user requirement, computer network, communication, and video engineering. Video on demand is a system which works like cable television. Contents are pre-recorded and stored at servers. The server may be at one physical location or distributed at different locations. Content is buffered or downloaded before actual play. Video on demand is not so time critical approach like live streaming. Therefore, video can be paused or resumed during the play. Every user is free to choose the program of their demand. It means programs are broadcast according Global IP traffic by application category [9]. A Survey on Adaptive Multimedia Streaming DOI: http://dx.doi.org /10.5772/intechopen.86125 to user requirements. A different user can ask for different services. The user can watch the programs according to their convenience. It may be weekdays or weekends at their choice timing. VoD also provides some special functionality. Users can forward or backward the program according to their convenience. In video on demand a client can download the video and may seek new play position according to his interest. Because the service is new it lacks universal standardization. Figure 3 shows the simple example of video on demand. After capturing the live event from the camera encoding take place. Now encoded video is stored for further demand, and through the streaming server, video in delivered to requester peers A, B and C.

Live streaming
Live streaming is a video platform that allows users to view any video in real time. Broadcast video content using an audio/video communication media through the Internet. Live stream, can be described as the streaming platform that permits user to view and simulcast video content by the help of any capturing tools like Global internet video by sub-segment [9].

S. no
Property Effect camera or audio recorder through the medium commonly known as the Internet. Live streaming can be described as the act of telecasting any live event which is being performed at real-time in any place by the medium of the Internet. It is not possible for each and every person to be present at many events going on simultaneously at different places. For this, live streaming plays a very important role in entertaining people by broadcasting the live event. For live streaming, a very common example is cricket matches being played at different places which are being telecasted for people entertainment. Live video streaming is time critical as compared to video on demand. It's a delay sensitive service. The user can not choose the program at their convenience timing. The event is going on and it is broadcasted to all users. So users don't not have special features like fast forward or slow the live events. Packet sizes of video which are being sent from server to viewers are not predefined. It makes live streaming more complicated than video on demand. Transmission of the video is very crucial factor in case of live video streaming. Frames should be reached at the destination before its deadline. After deadline frames are useless. So the frames which are urgent should be reached first before other frames. Otherwise, there is an interruption in live video streaming. In video on demand, first of all video is stored and further distributed according to the demand of client. Due to the same, implementation complexity of the video on demand is less as compare to live streaming. Figure 4 shows the simple example of live streaming. After capturing the live event from the camera encoding take place. Now the encoded video is transferred to a streaming server. The streaming server further forwards the video to requester peers A, B and C. A detail comparison of VoD and live streaming is given in Table 2.

Architectures
The architecture use for any system plays very important role in its performance. Therefore, a good architecture is also required to efficiently support video streaming applications. The architectures used for such systems have to support broadly buffering and streaming of audio, video and related data. Client server architecture is conventional and most popular solution for both VoD and live streaming. However architecture is not appropriate due to the scalability and Quality of services of different parameters. This motivates the research community to search for better architecture and to most commonly used architectures are Content Distributed Network (CDN) and Peer to Peer (P2P) network discussed below.

Content distributed network (CDN) architecture
The CDN architecture is a distributed architecture in which data is distributed over the different server. Instead of storing the whole data at an original server, data is distributed at edge or surrogate server as shown in Figure 5. A hierarchy of server is created over the network [11]. When a client wants to communicate it will send a direct request to nearest edge server instead of an original server. If the server is free, it responds back according to data it has for the client. The client gets the response and according to response if it is positive, client start to see the live video. But if the response is negative client has to search another server and repeat the process again until it gets a positive response from the server. The server can share more than one program with multiple clients according to its resource capacity. To overcome the problem of a flash crowd in client-server architecture a new approach called cooperative networking (Coop Net) is discussed [5]. The drawback of Coop Net is that the client cannot work for long duration. Coop net uses distributed streaming and distributed coding approach for transmission of live video streaming. Using the approach robustness of the system is also increased. Control overheard on the client side is minimum and easy to handle due to centralized behaviors of the server. Content distributed network provides reliability. In the client-server architecture, the resource utilization of the client is minimized. Scalability of the content distributed network is a major issue and increases the cost at the server side as the peer increase in the network. Due to the problem of scalability, cost and utilization of peer's resources researcher are attracted towards peer to peer network.

S. no
Live streaming Video on demand 1 In a live streaming session, a live video content is disseminated to all users in real-time.
Video-on-demand users enjoy watching whatever video clips whenever they want 2 The video playback on all users is synchronized.  Table 2.
Comparison between live streaming and video on demand.

Peer-to-peer architecture
"Peer-to-peer (P2P) computing or networking is a distributed architecture that partitions tasks or assignments between peers. Peers are similarly advantaged, equipotent contributors in the application" [15]. The prime focus of P2P network is to fair distribution of the content without any extraordinary provision from the network. Aim of P2P network is to reduce the overhead from the server and uses the upload bandwidth of the users. Some of the formal definitions of P2P networks as defined in [12][13][14]. Figure 6 shows a tree overlay of peer to peer network with 13 peers and a streaming server. Peer 1 and 2 are receiving the content from the server directly while other peers receive it from their immediate parents instead of direct from server. So upload bandwidth of peers is also used to further upload the content in the network. A comparison of P2P and CDN is given in Table 3.
Working concept of P2P streaming system is same as BitTorrent [16], parentchild relation is stablishes between the peers from the set of neighbor peers. Landmark implementation of p2p with live video streaming is CoolStreaming [17], and the different issued relate to the implementation of CoolStreaming is disused

Edge Server
Edge Server

End Devices
India Figure 5.

Hybrid architecture
In hybrid architecture both CDN and P2P architectures are combined to enhance the efficiency. A content distributed network is more reliable. Even if server is damaged peers can receive the media content from other servers. Peer to peer network is easily scalable and works better when the number of peer are more. Property of both the architectures are combined and a new hybrid architecture comes to light to leverages the characteristics of both the architectures [26]. In hybrid architecture, if a peer fails to deliver the requirements then reliable server takes over and provides the required media content to all the requester peers. Until the peer searches the new parent peer the quality maintenance in the network is the responsibility of the reliable server. Design issues of a hybrid system is discussed by Cui and Nahrstedt [27]. Servers are considered with large storage and bandwidth and peers are considered with limited storage and bandwidth. The link between the peers in the network follows the property of same as in P2Pand CDN. Figure 7 gives an example of hybrid architecture, 15 peers are in the network. Peer 1-4 are in P2P network and receive the content from the server2. Server 1-6 is the part of the content distributed network.
Landmark implementation of live video streaming in P2P network is CoolStreaming [13]. Some other popular techniques for P2P are PPTV [14], Mol's system [15] and Bitos [16]. Different implementation issues regarding CoolStreaming have been discussed in [17]. The design issues of DoNet/CoolStreaming are briefly described [10]. For overlay construction in CoolStreaming swarm based approach is used. An empirical study of CoolStreaming [18] reveals that distribution of media content can also affect the performance of the P2P network.  Table 3.

Comparison between P2P and CDN.
Some of the most challenging tasks in Multimedia streaming is selfish peer removal, flash crowd and data scheduling due to the frequently changed behavior of peers and network. This chapter primary focus on adaptive multimedia streaming. Further organization of the chapter is as follows. In Section 2, the work on adaptive multimedia streaming has been discussed. Section 2.1, gives the adaptive scheduling scheme, section 2.2 adaptive peer selection. Section 2.3 illustrates the various rate adaptation mechanisms. Last, the chapter concludes in Section 3.

Adaptive Multimedia streaming
Multimedia streaming architecture can be considered as a request response model and the demand of each client is not fixed also the network configuration can be changes dynamically. So static demand supply mechanism cannot provide the solution of multimedia streaming problem. Multimedia streaming model should be adaptive in nature. Different adaptation techniques can be applicable and some on them is discussed below in detail.

Adaptive Scheduling
The scheduling strategy changes with any change in the network configuration. So, peer selects the different block of chunk according to its current network configuration or current peer demand. In this section, we discuss the different adaptive parameters which can affect the scheduling strategy and the different adaptive scheduling schemes. In Figure 8; different adaption parameters are discussed. Passive adaptation parameters are those which are pre-defined and do not change in the network for a specific peer. While active adaption parameters are the ones which change as the network condition changes. For a peer, active adaption parameters are dynamic in nature while, the passive adaption parameters are static in nature. This section explains how according to adaption, the choice of scheduling scheme for different parameters changes. Active adaption is dynamic so it is crucial for scheduling scheme and different parameters like peer, congestion etc. affect the scheduling.
The relationship between sender and receiver may worsen due to improper resource adjustment. Lack of network knowledge also affects the network performance. Zheng et al. [28] described an adaptive approach, which uses push based scheduling scheme to solve the problem of the unstable relationship between demand and supply [28]. This approach depends on forecasting. The system forecasts the utilization of resources i.e. which resources will probably be insufficient so that resources can be demanded early and scheduling becomes smooth. An Adaptive method is used to select the push peers and the push resources. Peers are chosen according to network conditions and among them, the best peers are selected. Heterogeneity of the network and end devices is a major factor in live video streaming. The different issues that arise are resolution and screen size, delay, variable download bandwidth and processing capability. According to user convenience, the author tries to improve video streaming for end users. This approach provides quality adaptive streaming using scalable video coding (SVC). SVC is a layer coding technique where the video is distributed at different layers i.e. one base layer and multiple enhancement layers [29]. Layer selection is a two-step mechanism, and Quality adaption is provided using layer selection. The first step is Initial Quality Adaption (IQA) and the second step is Progressive Quality Adaption (PQA). Figure 9 depicts the Quality adaptive streaming architecture. Initial Quality Adaption (IQA): As the name of the module suggests it is an initial decision for quality adaption. Parameters which influence the decision in IQA are screen resolution, available bandwidth and processing power. The initial quality set is assumed as (QS0). The value of QS0 is defined in Eq. (1), where d, t, and q are the total number of layers in spatial, temporal, and SNR dimensions.
Progressive Quality Adaption (PQA): This module is executed periodically to improve the video quality according to network changes. It takes two real-time factors into consideration i.e. throughput and block availability. It also considers processing power to maintain peer resources. On the basis of above parameters, it calculates the net status adaption, bitrates adaption and complexity adaption. Lastly, it concludes with the final adaptive output [30].
The dynamic requirement of peers is satisfied by parameters which are vital for the end user. Approach provides results considering the dynamic effect of nature, and thus it provides better adaptive results regarding block availability and response time for the reply. A solution to the scheduling problem is to find the sender peer and the resource. Many different paths maybe available between the source and destination in the case of mesh overlay. Thus, finding the best path between the sender and receiver also plays a major role in P2P networks. The approaches to path selection using genetic algorithm are used to take care of the same [31]. These methods use mutation and crossover procedures with series of the population. Peers find information about the physical path and this information works as a fitness function for decision making. Traceroute command is used for calculating physical path information; this command dynamically finds changes in the network. Approach adaptively provides the best available path between the sender and the receiver. Using such path selection approach has a positive effect on the network performance regarding the end-to-end delay. Figure 8 shows a classification of the adaptation techniques into two parameters on which they are based. Out of these different parameters adaptive peer selection and adaptive rate selection have a major impact on P2P network, so these two adaptation mechanisms are discussed in detail.
For providing the full bandwidth utilization of the peers available in the specific region E. Karayer provides a multi-generation packet scheduling approach [31]. Different classes according to the desired quality of services are created. Further two scheduling approaches are developed in such a way that first approach consider primarily on single generated problem, while second approach focuses on dynamic programming. Solution of the approaches are achieved using pseudo-polynomialtime. Improved bandwidth efficiency is achieved and verified thorough the simulation results [32]. Another scheme which focuses on multi-chunk and peer selection is defined in [33]. Focus of the approach is to provide usefulness of peers and chunks according to the playback probability of each chunk and streaming rate. Available bandwidth of each peer in the network also play a crucial role for scheduling scheme. Considering this factor J.Zhang [34] provides new approach for the selection of scheduling scheme. Real-time congestion of the environment is also considered for the selection of scheduling. Through the congestion peers are considered as busy, sense busy and idle. As a comparative analysis with CoolStreaming approach provides better Quality of Services (QoS) with respect to delay and throughput. Another approach defined in in [35] uses the 324 bandwidth information of every available peer in the network for selecting a 325 scheduling scheme.

Adaptive Peer Selection
The P2P network approach is scalable, so it can effortlessly be used in a video streaming network. But how a peer finds a perfect video chunk from its neighbor peers is a challenging task in the P2P network. The author X. Liao et al. [36] focuses on this issue and tries to formulate a hybrid scheduling scheme for data transmission in P2P network. Some of the factors which affect scheduling scheme are: 1. Which part of data to schedule? 2. Who should be the parent for a particular data packet?
The OCTOPUS approach takes the second factor into prime consideration and uses a score method for parent selection between the available neighbors. The score values calculated between the peers maybe positive or negative and are thus categorized as positive score or negative score. If a client needs data from its neighbor's buffer cache, it is called a positive score. But if a neighbor requires data from its client's buffer cache it is called a negative score. In simple terms, data required by the client is positive score and data given by client is the negative score. Eq. (2) represents how a score is calculated, Eq. (2) Eq. (3), Eq. (4) and Eq. (5) are used in this process. Score ( k, j ) = Score j→k + Score k→j (2) where The peers exchange buffer map among themselves to update their status. A Buffer map contains of 4 tuples <Pmin, Pmax, Pwant, S[i]>. According to the score value, each peer selects its parents. If score value of j is more for peer i, then peer i selects j as a parent. Scheduling cycle is assumed as T, while R(x) and W(x) as upload bandwidth and initial scheduling bandwidths for peer x. Then the capacity is calculated as P(x) = W(x)*T. Initial scheduling bandwidth of each peer is calculated as W(x) = Sbps/N, where Sbps is streaming rate for the video file and N are the total number of parents. After making the comparison between W(x) and R(x), the bandwidth is adaptively increased or decreased according to the network conditions. This is done so that the upload bandwidth of the peer can be fully utilized. The implementation done by the author shows that OCTOPUS approach gets the desired results. The main consideration of this approach is choosing the best parent peer. Selection of data is also a major concern in the network, but this approach doesn't consider this issue. Other issues like end device heterogeneity and network configuration have also not been discussed in this approach [36].
Pre-caching of video can solve the issue of selecting an optimal scheduling scheme upto a certain level. Different pre-caching approaches for distributed and centralized settings are given in [37]. Max-weighted independent set (MWIS) method is used for the centralized scheduling setting. The message passing approach is used to find the value of the max-weighted independent set. For distributed scheduling setting, FlashLinQ link scheduling algorithm is used. Precaching at single level is not sufficient and can be further improved and the same is discussed by Hui-Hsiang Kao [38]. Hui-Hsiang Kao distribute the caching into two levels and named as prefix and suffix caching. Low startup delay and fast parent searching is achieved using prefix caching while adjustment of cache size is provide by suffix caching. Overall mechanism make sure the reduction in probability of chunk loss.
Peer selection is a prime concern to minimize the start-up delay and to provide high quality video. Round trip time (RTT) and available bandwidth both play a fundamental role in the P2P network. A combination of both parameters has been discussed in Adaptive and Efficient Peer Selection (AEPS) [39]. This approach combines both the factors i.e. RTT and Bandwidth, for video streaming. Different stages used in the architecture are Demand, Query & Rank and Verify. Demand stage is the core step in any P2P network. In this stage, a peer asks for a list of other available peers in the network who can play the role of parent for the client peers. Index server or tracer contains the list of existing peers in the network that have the same video. If there are too many peers in the network, instead of the full list server sends a partial list, and the rest of the list is calculated randomly. On receiving the list, the peer sends a query to all the available parents in the list. In response to the query, client receives a reply message. On the basis of this reply message, client finds the rank of all parent peers. APES scheme considers RTT as a principal factor; client uses this RTT value for ranking peers. Among all peers, if the RTT value of a peer is the highest then ranking of that peer is the lowest and based on the bandwidth further improvement must be made. In stage 3, the path defined by step 2 is verified according to the available bandwidth. The Parents peers are authenticated from the list according to their ranks. Through the experimental results, it is shown that AEPS is more efficient than the ABW based approaches and more accurate than the RTT based methods. APES performs much more efficiently in a general network [39].
The peers are very unpredictable in nature, and a peer cannot trust other peers for good data transmission so, trust is a crucial factor for good data transmission. On the basis of trust model a novel approach, trustworthy-based efficient multipoint relays (TEMRP) is described [40]. Method is described for mobile P2P networks which are a major component of P2P network. Approach tries to improve communication overhead between peers. A comparison is done between the TEMRP, multipoint relay (MPR) and pure flooding methods which reveal some useful results. MPR and flooding approach are very basic strategies for mobile P2P networks. Using the cost model a comparison of the different methods is performed using the resource utilization and latency. Peer calculates trust values based on the past experiences and according to that, it finds the trustworthy peer. Only trustworthy peers are selected as the next relay peer for data transmission. Most trustworthy peer selects the second most trustworthy peer and thus forwards the data further. Broadcast peer also finds the leaf peer and assigns a trustworthy peer for them so data can reach towards the leaf peers. The format of the message is <p1# p1-1, p1-2… p1-m>, peer before #indicates that peer p1 sends data to other peers that are shown after #. Then different trust values are calculated, and cost model is used to derive values for the TEMRP. In the end the cost of relay peer, leaf peer, and the broadcast peer is calculated. The comparison of cost model with MPR model and simple flooding model reveals that energy cost and latency of TEMRP is better than the other two approaches i.e. the MPR and Flooding approach [41].
Divide and conquer approach can be used to find the appropriate peer dynamically. Network Utility Maximization (NUM) problem is formulated first and DOI: http://dx.doi.org /10.5772/intechopen.86125 second problems of NUM approach are solved by using Lyapunov drift plus penalty approach. The dynamic adaptive approach is used which decomposes the problem into two blocks. The first block is used to find the adaptive video quality by using helper selection mechanism. The second block is used for discovering the helper to peer rate. Thus this approach is adaptive in two ways: firstly for selecting of helper and secondly for rate adaption. Queue size also affects the performance of the network so in the approach the queues are assumed to be of the same length. For the purpose of buffering the pre-buffering and re-buffering approaches are used [42]. Networks in live video streaming have a demand for adaptive streaming. Every individual peer tries to improve the quality of media it receives. Peers try to receive the video as smooth as possible. HTTP Adaptive streaming (HAS) can be a solution for adaptive streaming [43] where a video is split into small segments, and then these segments are encoded at different rates. Differentiation between the rates is maintained according to the quality of the video. The decision of choosing any rate among the different possible rates is according to network conditions and the buffer status of the peer. If the network is less congested, then peer can request for better quality, but if the network is congested then, the peer has to adjust with low-quality video. The same approach is used if the buffer is full and if a peer can wait for better quality it will request for a better quality video. But if the buffer is empty and there is a situation of starvation, then the peer can only ask for low-quality video. The approach uses an optimization agent which monitors the network conditions and according to that it calculates the required optimization value and provides the best deal for it. Packet-based traffic estimation model is used for calculating traffic between the peers. A graph is created, and traffic of each path (edge) is calculated. The historical approach is used for calculating or estimating traffic between the peers. Then QoE-driven quality adaption technique is used for quality updating. This approach considers issues like rate and traffic but parameters like chunk utilization and chunk deadline which can also affect the network performance are not considered.

Adaptive Rate Selection
Only adaptive peer selection is not sufficient for improvement of a P2P network hence, overlay adaption and rate adaption are combined in a new scheduling scheme as described by Hao Luan [44]. On the basis of local information; rate controller applies rate adaption in this scheme. This approach is efficient in P2P networks for overlay construction and as a scheduling scheme, but it doesn't contemplate upon properties like heterogeneity and parameters like delay in the network. A fixed channel uses fixed rate for data transmission over P2P network. If the data rate is high, the chance of data drop increases due to lack of available bandwidth between the peers. But if the data rate is low, then there is a chance of video smoothing and video quality. So the data rate directly affects the performance of video streaming in P2P network. To solve the above problem, an approach for the self-adaptive multi-rate is discussed [45]. The architecture of the approach (MoSee) comprises of three main components: Tracker (register server), broadcasting server (Broadcaster) and the client (Consumer of data). The client maybe wired, or wireless, broadcaster has the responsibility to transfer data to the client according to the client requirements. It also registers the channel it created for the client, with the tracker. Client logs in the register server and finds the list of programs. After choosing the program, the client selects the channel and joins it. In MoSee, a stream of the channel is distributed into sub-streams, and each sub-stream is identified by a unique index. According to network condition and status of its buffer, the client can choose any sub-stream. The sub-stream can also be adaptively changed according to variations in the network. In the starting, the network is unstable, so peer chooses low bit rate stream but after some time when the network becomes stable, the peer chooses the high data rate sub-stream. The concept of multiple sub-streams is introduced to decrease the degree of data sharing between peers who have different data sub-streams. For increasing the level of data sharing between such peers, a different approach is used. In that approach, peers that can download the high data rate also download the low data rate stream for poor peers. When the poor peer (the one with a low download bandwidth) needs the low rate sub-stream, then that peer can provide it the sub-stream. For selecting the neighbor peer, Round Trip time (RTT) value is used, and weights are assigned to different peers, after which the final selection is done.
Different factors like bandwidth heterogeneity, high transmission delay and churn of peers can be very tricky in a P2P network. A different prospective approach, server aided adaptive live video streaming that solves all these issues has been discussed by [46]. Multi-tree overlay approach is used for creating the overlay between the peers in P2P network. The video is sent by multiple peers according to the network conditions and available bandwidth. According to network state, streaming server switches bit stream between the multiple available streams. Rate shaping scheme is also applied to lower the rate for transmitting the stream to remove the effect of network congestion. Two stages are used for rate shaping in a distributed multi-tree overlay. The first stage is the calculation of allocated bandwidth, to compute this; a list of packets received and transmitted is created. According to remaining bandwidth, the most appropriate packet from the list is sent. In the second stage, the optimized scheduler is applied. On the basis of the impact on their performance, the packets are differentiated. This approach is suitable for application on the server side, but in P2P network the approach is not only at server side but also, the actual demand-supply exists between the peers. Another approach for controlling playback rate at run time is described by Maria [47]. This playback rate control method has been discussed in two different cases i.e. nominal and robust case. Remaining upload bandwidth of peers in the network is used for calculating the rate. It dynamically checks the remaining upload bandwidth of peers that are currently active in the network. A theoretical model is described, and the solution for playback rate control is provided.
The Higher rate is required to fulfill the demand of the receiver, and a queuing model can help with the same. If a proper queue is maintained and the proper input is provided to the queue, then appropriate rate can be received by the peers. For adaptive scheduling different queuing models are discussed in the approach like peer and server side [48]. In peer side queue, received data is classified into two classes F (Forwarding) and NF (Non-Forwarding). The forwarding class contains the data which should be forwarded to other peers, and non-forwarding class includes the data which belongs to peer. Thus, there is no need to forward it to other peers. At the server side, two queues are maintained one for data and the other for signal. Pull approach is used for retrieving data by the peers and optimization is done according to the queue status. A distortion rate approach has been discussed by [49], the approach is receiver driven on multipath streaming. First, the parent selection takes place, the most appropriate receiver driven approach is used to find the appropriate parent nodes. Parent selection takes care of optimal end-to-end delay path selection; then the stream flow equations are generated, and a stream flow graph is created. This solution of stream flow graph provides the best rate to the desired peer. To solve the problem of long start-up delay Z defined a low time delay scheduling scheme [50]. The three main methods that are used by the approach are described as copying, grouping based on parts and priority scheduling. The peer is distributed into different groups, and the peers within the same © 2019 The Author(s). Licensee IntechOpen. This chapter is distributed under the terms of the Creative Commons Attribution License (http://creativecommons.org/licenses/ by/3.0), which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited.
A Survey on Adaptive Multimedia Streaming DOI: http://dx.doi.org /10.5772/intechopen.86125 group can exchange data with each other. A peer can also join another group after downloading the content from the first group. This approach is easy to implement as it also reduces the start-up delay in the P2P network.

Conclusion
Because of the properties like user-friendly nature and scalability the demand of video streaming is growing rapidly in the existing age. Demand of client and configuration of network is not static and that's force to moving towards the adaptation of streaming. Adaptive multimedia mechanism can provide the solution of scalability, network fluctuation, bandwidth availability and improvement in quality of services. So in this chapter we focus on different adaptive multimedia streaming mechanism. There are various mechanisms to provide it. Adaptive scheduling scheme is one of the crucial factors. Other factor which help in adaptive multimedia streaming are rate adaptation and peer adaptation. These factors directly impact the performance of video streaming and improve the overall quality of services for both sender and receiver as well as make the overall experience pleasant for client. Huge amount of work is already discussed but still there is a demand of appropriate adaptive scheduling scheme and the area is still open for further research.

Author details
Kunwar Pal 1 *, Mahesh Chandra Govil 2 , Mushtaq Ahmed 2 and Tanvi Chawla 2 1 Department of Computer Science and Engineering, National Institute of Technology Sikkim, India 2 Department of Computer Science and Engineering, Malaviya National Institute of Technology Jaipur, India *Address all correspondence to: kunwar@nitsikkim.ac.in