WO2013139804A1 - Fast channel change algorithm - Google Patents

Fast channel change algorithm Download PDF

Info

Publication number
WO2013139804A1
WO2013139804A1 PCT/EP2013/055721 EP2013055721W WO2013139804A1 WO 2013139804 A1 WO2013139804 A1 WO 2013139804A1 EP 2013055721 W EP2013055721 W EP 2013055721W WO 2013139804 A1 WO2013139804 A1 WO 2013139804A1
Authority
WO
WIPO (PCT)
Prior art keywords
client
server
stream
multicast
unicast
Prior art date
Application number
PCT/EP2013/055721
Other languages
French (fr)
Inventor
George MIKELADZE
Davit MISHELASHVILI
Levan NATROSHVILI
Original Assignee
Qarva Ltd.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qarva Ltd. filed Critical Qarva Ltd.
Publication of WO2013139804A1 publication Critical patent/WO2013139804A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving MPEG packets from an IP network
    • H04N21/4383Accessing a communication channel
    • H04N21/4384Accessing a communication channel involving operations to reduce the access time, e.g. fast-tuning for reducing channel switching latency
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2401Monitoring of the client buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/26616Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel for merging a unicast channel into a multicast channel, e.g. in a VOD application, when a client served by unicast channel catches up a multicast channel to save bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6377Control signals issued by the client directed to the server or network components directed to server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6405Multicasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/64Addressing
    • H04N21/6408Unicasting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server

Definitions

  • This present application is directed at a method and a system for streaming media from a media server to client modules according to the preambles of the independent claims.
  • Buffering requires a certain amount of time when the user first connects to a stream of media information.
  • digital media information is commonly expressed as a series of key frames (e.g., I frames) and difference frames (e.g., B and P frames). Accordingly, a client module must wait for a key frame before it can begin presenting the media information to the consumer, resulting in a noticeable lag prior to the presentation of programs as the user switches from one channel to another.
  • the server infrastructure delivers an initial burst of media information, which feeds a large quantity of media information to the client module via a communication channel, enabling it to begin presentation of the media information on an expedited basis. After this initial burst, the server infrastructure delivers the media information to the client module at a regular data rate.
  • What is described in this document is a method for delivering resource information to a client module, the method comprising the steps of delivering the resource information, using a first delivery technique, at above-nominal data rate levels during an initial burst period of data transmission to the client module; delivering the resource information at join interval data rate levels during a join interval following the burst period, wherein, following the join interval, the client module switches to a second delivery technique for providing the resource information; and responding to requests from the client module to supply parts of the resource information which the client module potentially missed during the join interval as a result of its receipt of the resource information at the join interval data rate levels.
  • the client is the driving component and takes all the decisions regarding the time to Join Multicast, Burst, etc., while the Server just executes the commands issued by Client.
  • a respective client may, for example, stay on Unicast forever, if the network experiences problems with Multicast, which leads to a much better user experience, since networks are used based on actual availability and capabilities instead of virtual server demand.
  • a method for initiating streaming media delivery over a network from a server to a client comprising the steps of determination of the technical environment and network connection parameters of the client through the client, the client then issuing a command to the server to initiate streaming media delivery including a channel ID and stream position, and the server receiving the initiate delivery command and starting burst transmission of media according to channel ID and stream position.
  • this method it is the client that is in the driver's seat and taking all the decisions regarding when to start a stream and how to deliver the stream, taking into account all the environmental parameters of the client, in order to use the available resources to its fullest, but also considering its limitations.
  • the server and the client are within a TCP network, it is necessary that before the client issues the command to initiate streaming media delivery, the additional steps of the client sending a connect request to the server, and the server accepting the connect request are performed.
  • the server terminating the burst transmission after a defined time, and continuing streaming at a nominal bit rate, while circular buffers may be used in the server to store the stream.
  • the step of determining the technical environment includes calculating an offset, and a delay before joining multicast based at least upon one of channel bit rate, line bandwidth, and/or buffer size.
  • the initial stream that is transmitted from the server to the client preferably is a unicast stream, wherein the client performs the additional step of determining whether a media stream is being received.
  • the client may issue a multicast join request in order to overcome the lack of unicast media stream.
  • the client may wait for the delay to join multicast to end, and, upon reaching the end of the delay, issue a multicast join request to the server just as well, wherein until the first multicast packet arrives, the client receives the unicast stream, and upon arrival of the first multicast packet, stops receipt of the unicast stream.
  • the client may either issue a stop unicast command to the server, or, in the case of a TCP network, simply close the connection to the server.
  • the client may perform another step of determining the existence of lost packets, or holes, in the multicast stream. Additionally, even during receipt of the multicast stream the client may continuously determine the existence of lost packets, or holes, in the multicast stream.
  • the client can send a request to the server to retransmit any lost packets, in order to fill the holes in the multicast stream.
  • the client may perform the step of sending a request to the server to reinitiate unicast streaming, which in essence will lead to a restart of the entire method as described above.
  • FIG. 1 a flowchart, showing the server side of the method
  • FIG. 2 a flowchart, showing the client side of the method
  • FIG. 3 a diagram to visualize the amount of data transmitted according to the invention.
  • T - is the current time.
  • I - is the interval (offset) from where to start receiving the media stream. This interval is calculated by the client, and depends upon on number of technical environment parameters of the client, such as but limited to line bandwidth, channel bit rate, buffer size, etc.. There may be many variations of calculating the I parameter.
  • One basic formula, in which I is measured using bytes, is the following:
  • fetch multiplier is a parameter that describes how intensive the stream data prefetch is. This parameter may depend on many factors, in example it may differ for CBR (constant bit-rate) and VBR (variable bit rate) streams, because VBR streams may require more data to be prefetched due to its unsteady nature. In some examples there may be found an optimal fetch_multiplier of about 1.3-1.5 for CBR streams, and 1.8-2.0 for VBR streams. But this may be different for other examples.
  • reserved_amount is an additional parameter that makes systems more stable, as there may be instability of line bandwidth, or other factors that may cause temporary problems.
  • reserved_amount is a certain amount of prefetched additional data to save buffers from running empty if something goes wrong at a later point in time.
  • OptimalTransitionTime - is the delay before joining multicast, calculated by the client, depending upon channel bitrate, line bandwidth, buffer size, or other parameters. There may be many variations of calculating the OptimalTransitionTime parameter, but for the sake of this description may be calculated as:
  • OptimalTransitionTime ((I x 8) / ((1 + E) x Nominal)) + reserved_delay
  • I is expressed in bytes in this formula
  • OptimalTransitionTime in seconds
  • (1 + E) x Nominal is equal to line bandwidth in bits per second
  • reserved_delay is the additional delay in seconds that makes the system more stable when line bandwidth is unstable.
  • I and (T - I) position parameters in the actual implementation may be measured by time units (seconds, milliseconds, etc.), or by information unit (bits, bytes, etc.)
  • Fig. 1 the method as seen from the server side is described, wherein both the server and the client are located within a network in which a connection oriented protocol such as TCP is used.
  • a connection oriented protocol such as TCP
  • the server accepts the connection from client.
  • establishing a connection may not be necessary.
  • the server receives a command from client, the command containing information about the channel ID, and the stream position from where to start burst at T - 1.
  • step 6 the server starts streaming the burst at (1 + E) x Nominal, whereas in the following step 8, after the burst is over, the server continues streaming at a nominal bitrate, i.e. in live mode. This transition is performed without interruption, over the same unicast channel, wherein the server may use circular buffers to store the channel stream. Furthermore, the transition from burst mode to live mode is done in a natural way without any additional enforcement. [0039] If and when at step 10 the server receives from the client the command to stop streaming or when the client closes the connection (if any), the server stops transmitting the stream and closes the connection channel (if any) from his side as well at step 12.
  • the server will continue streaming in "live mode" at a nominal bitrate forever, or it may stop transmitting the stream after some predefined time interval has passed, or a traffic limit was reached.
  • FIG. 2 a preferred embodiment of the method is described from the client side.
  • the client establishes a connection to the server (again in case that a connection oriented protocol like TCP is used, otherwise the step of establishing connection may not be necessary).
  • the client calculates the offset I according to the instructions above, as well as the OptimalTransitionTime, i.e. the delay before joining multicast.
  • the client sends a command to the server that contains information about the channel ID and the stream position from where to start burst at time T - I.
  • the client starts receiving a unicast stream, and optionally fills buffers, starts playing, etc., in step 20.
  • step 22 the client determines, whether there is any problem in establishing connection to the server, whether the server is unable to execute the command received from the client according to step 18, or whether the client does not receive the unicast stream for any reason. If there is a problem of this kind, the client proceeds to the next step 22, according to which it will try to use multicast functionality without the initial unicast burst by immediately going to step 26 and issuing a join multicast request. If no problems can be detected by the client, the method proceeds to step 24, with the client waiting for the OptimalTransitionTime, while still receiving a unicast stream and playing.
  • step 26 If the OptimalTransitionTime is over, the method proceeds to step 26, with the client issuing a multicast join request, while the client still receives a unicast stream and plays to the user according to step 28.
  • step 30 the client determines, whether any multicast packets start arriving. If no multicast packets arrive, the client will still continue receiving a unicast stream and playing, which may happen when the network multicast functionality is down or is experiencing any problems.
  • the client will stop receiving the unicast stream according to step 32 either by issuing an appropriate command to the server, or by simply closing the connection (if any).
  • the client receives a multicast stream and plays the media to the user.
  • the client checks if there were any "holes", i.e. lost packets in the stream when accomplishing unicast to multicast transition. If this is the case, the client will ask the server to retransmit any lost packets to fill the "holes". During the multicast stream reception client may ask the server to retransmit lost packets (if any).
  • step 38 if the multicast stream stops for longer than some predefined time interval, the client may decide to switch to the unicast stream. To do so the method returns to the step 1.

Abstract

A method for initiating streaming media delivery over a network from a server to a client, comprising the steps of determination of the technical environment and network connection parameters of the client through the client, a client issuing a command to server to initiate streaming media delivery including a channel ID and stream position, and a server receiving the initiate delivery command and starting burst transmission of media according to channel ID and stream position.

Description

Description
Titel: Fast channel change algorithm
[0001] This present application is directed at a method and a system for streaming media from a media server to client modules according to the preambles of the independent claims.
[0002] Traditional systems for delivering broadcast media to the consumer rely on the use of a physical tuner in a client module, for example in the form of a television set that tunes to and receives the media information. In such a model, a user can quickly change channels, resulting in a real time transition from one program to another, so that the user does not perceive a delay in the presentation of a new program upon tuning to a new program. However, this simple manner of operation does not work for streaming digital media information over a network as is the case for example in IPTV environments. In such environments, the client module, which can be either a set top box or a software module, has to buffer a certain amount of media information before it can begin playing the media information to the consumer. Buffering, however, requires a certain amount of time when the user first connects to a stream of media information. Furthermore, digital media information is commonly expressed as a series of key frames (e.g., I frames) and difference frames (e.g., B and P frames). Accordingly, a client module must wait for a key frame before it can begin presenting the media information to the consumer, resulting in a noticeable lag prior to the presentation of programs as the user switches from one channel to another.
[0003] Over time various methods were developed to reduce the effects of the problem in media streaming environments described above. According to these methods, the server infrastructure delivers an initial burst of media information, which feeds a large quantity of media information to the client module via a communication channel, enabling it to begin presentation of the media information on an expedited basis. After this initial burst, the server infrastructure delivers the media information to the client module at a regular data rate.
[0004] Generally, these methods including the bursts of media information are very demanding as regards required communication channels beyond that required to transmit the media information at its normal steady-state rate. This problem may be addressed by allocating extra bandwidth to implement the methods. However, many environments allocate a limited amount of bandwidth to the communication channels, which posts additional problems, so that the methods mentioned above have the potential of overburdening such a communication channel, particularly when multiple users in a household are consuming media information at the same time.
[0005] Other environments that are rate-limited may allocate a relatively large amount of bandwidth to the channels, thus reducing the potential of over-saturating the available channels.
[0006] A method to make such systems less costly, less error prone, and more efficient was disclosed in US 2009/0077255 Al to Microsoft Corp. which is included herein by reference.
[0007] What is described in this document is a method for delivering resource information to a client module, the method comprising the steps of delivering the resource information, using a first delivery technique, at above-nominal data rate levels during an initial burst period of data transmission to the client module; delivering the resource information at join interval data rate levels during a join interval following the burst period, wherein, following the join interval, the client module switches to a second delivery technique for providing the resource information; and responding to requests from the client module to supply parts of the resource information which the client module potentially missed during the join interval as a result of its receipt of the resource information at the join interval data rate levels.
[0008] The method described in this document has a number of advantages over prior methods. However, time has shown that there still is room for improvement. In particular, in the method as described in US 2009/0077255 Al , it is a server that is driving the process, i.e. the server takes all the decisions regarding parameters like burst length and speed, non-burst length and speed, moment of joining multicast, filling of pre-multicast period by some unicast or not filling, etc. while the client just executes commands given by Server.
[0009] The disadvantage of this approach is that all the actual information regarding the environment of the client, such as connection speed, signal quality, etc. remains unconsidered. If, for example, a Multicast Join command is issued by a client to the network, this command is executed with a very long delay, i.e. more than 10 seconds. In this case, a method as described in US 2009/0077255 Al would have little or no positive effect, as the server delivering the media content cannot know what is happening at the client's side. As a result a user might experience problems while watching or switching to a particular channel, as after the burst was played, the video will stop as Multicast has not actually been joined and the respective media stream has not arrived at the client yet.
[0010] This means that either very strict requirements for network quality would have to be imposed, or a user would have problems watching TV over the network.
[001 1] Furthermore, if some problems occur in some small part of the network regarding Multicast, users would have problems watching TV.
[0012] As a quick solution to this problem, one could substantially increase the burst period to values of one minute or two. This would not help in all cases, however, and, what is even more important, would increase the load on the network just as much, as bursting and unicast in general generate heavy loads on a network.
[0013] Considering all of the above, there is a clear need for a method and/or system that overcomes the disadvantages as described above.
[0014] Accordingly, an approach is proposed in which the client is the driving component and takes all the decisions regarding the time to Join Multicast, Burst, etc., while the Server just executes the commands issued by Client. According to this approach, and as a client knows its own environment such as connection speed and quality, and sees what is happening during the process of changing channels, a respective client may, for example, stay on Unicast forever, if the network experiences problems with Multicast, which leads to a much better user experience, since networks are used based on actual availability and capabilities instead of virtual server demand.
[0015] More specifically what is proposed is a method for initiating streaming media delivery over a network from a server to a client, comprising the steps of determination of the technical environment and network connection parameters of the client through the client, the client then issuing a command to the server to initiate streaming media delivery including a channel ID and stream position, and the server receiving the initiate delivery command and starting burst transmission of media according to channel ID and stream position. According to this method, it is the client that is in the driver's seat and taking all the decisions regarding when to start a stream and how to deliver the stream, taking into account all the environmental parameters of the client, in order to use the available resources to its fullest, but also considering its limitations. [0016] In case that the server and the client are within a TCP network, it is necessary that before the client issues the command to initiate streaming media delivery, the additional steps of the client sending a connect request to the server, and the server accepting the connect request are performed.
[0017] Preferably, there is an additional step of the server terminating the burst transmission after a defined time, and continuing streaming at a nominal bit rate, while circular buffers may be used in the server to store the stream.
[0018] According to another preferred embodiment of the invention, the step of determining the technical environment includes calculating an offset, and a delay before joining multicast based at least upon one of channel bit rate, line bandwidth, and/or buffer size.
[0019] The initial stream that is transmitted from the server to the client preferably is a unicast stream, wherein the client performs the additional step of determining whether a media stream is being received. Upon determination that the client does not receive a unicast stream, the client may issue a multicast join request in order to overcome the lack of unicast media stream.
[0020] On the other hand, if the client does receive a unicast stream, it may wait for the delay to join multicast to end, and, upon reaching the end of the delay, issue a multicast join request to the server just as well, wherein until the first multicast packet arrives, the client receives the unicast stream, and upon arrival of the first multicast packet, stops receipt of the unicast stream.
[0021] To stop the unicast stream, the client may either issue a stop unicast command to the server, or, in the case of a TCP network, simply close the connection to the server.
[0022] Upon accomplishment of unicast to multicast transition, the client may perform another step of determining the existence of lost packets, or holes, in the multicast stream. Additionally, even during receipt of the multicast stream the client may continuously determine the existence of lost packets, or holes, in the multicast stream.
[0023] In both cases and upon determination that lost packets exist, the client can send a request to the server to retransmit any lost packets, in order to fill the holes in the multicast stream.
[0024] Furthermore, if the client upon determines that the multicast stream stops for longer than a predefined time interval, the client may perform the step of sending a request to the server to reinitiate unicast streaming, which in essence will lead to a restart of the entire method as described above.
[0025] Further features and advantages may be taken from the following merely illustrative and in no way limiting description of a preferred embodiment of the invention with reference to the enclosed figures, showing:
[0026] Fig. 1 a flowchart, showing the server side of the method;
[0027] Fig. 2 a flowchart, showing the client side of the method;
[0028] Fig. 3 a diagram to visualize the amount of data transmitted according to the invention.
[0029] According to Fig. 3 and for the sake of this description of a preferred embodiment of the invention, the following parameter calculations are used:
[0030] T - is the current time.
[0031] I - is the interval (offset) from where to start receiving the media stream. This interval is calculated by the client, and depends upon on number of technical environment parameters of the client, such as but limited to line bandwidth, channel bit rate, buffer size, etc.. There may be many variations of calculating the I parameter. One basic formula, in which I is measured using bytes, is the following:
I = minimal amount + total buffer size * fetch multiplier + reserved amount wherein minimal_amount is a minimal required amount to be prefetched, total buffer size is the sum of sizes of all buffers involved in the receive/recovery/play system, that may cause a delay before the media stream reaches video/audio decoder module of the client, and fetch multiplier is a parameter that describes how intensive the stream data prefetch is. This parameter may depend on many factors, in example it may differ for CBR (constant bit-rate) and VBR (variable bit rate) streams, because VBR streams may require more data to be prefetched due to its unsteady nature. In some examples there may be found an optimal fetch_multiplier of about 1.3-1.5 for CBR streams, and 1.8-2.0 for VBR streams. But this may be different for other examples.
[0032] Furthermore, reserved_amount is an additional parameter that makes systems more stable, as there may be instability of line bandwidth, or other factors that may cause temporary problems. Essentially, reserved_amount is a certain amount of prefetched additional data to save buffers from running empty if something goes wrong at a later point in time.
[0033] OptimalTransitionTime - is the delay before joining multicast, calculated by the client, depending upon channel bitrate, line bandwidth, buffer size, or other parameters. There may be many variations of calculating the OptimalTransitionTime parameter, but for the sake of this description may be calculated as:
OptimalTransitionTime = ((I x 8) / ((1 + E) x Nominal)) + reserved_delay wherein the parameter I is expressed in bytes in this formula and OptimalTransitionTime in seconds, wherein (1 + E) x Nominal is equal to line bandwidth in bits per second, and reserved_delay is the additional delay in seconds that makes the system more stable when line bandwidth is unstable. [0034] I and (T - I) position parameters in the actual implementation may be measured by time units (seconds, milliseconds, etc.), or by information unit (bits, bytes, etc.)
[0035] Referring now to Fig. 1 the method as seen from the server side is described, wherein both the server and the client are located within a network in which a connection oriented protocol such as TCP is used.
[0036] In a first step 2, the server accepts the connection from client. In other networks using other protocols as a connection oriented protocol, establishing a connection may not be necessary.
[0037] In a second step 4, the server receives a command from client, the command containing information about the channel ID, and the stream position from where to start burst at T - 1.
[0038] In the following step 6, the server starts streaming the burst at (1 + E) x Nominal, whereas in the following step 8, after the burst is over, the server continues streaming at a nominal bitrate, i.e. in live mode. This transition is performed without interruption, over the same unicast channel, wherein the server may use circular buffers to store the channel stream. Furthermore, the transition from burst mode to live mode is done in a natural way without any additional enforcement. [0039] If and when at step 10 the server receives from the client the command to stop streaming or when the client closes the connection (if any), the server stops transmitting the stream and closes the connection channel (if any) from his side as well at step 12.
[0040] Otherwise the server will continue streaming in "live mode" at a nominal bitrate forever, or it may stop transmitting the stream after some predefined time interval has passed, or a traffic limit was reached.
[0041] Turning now to Fig. 2, a preferred embodiment of the method is described from the client side.
[0042] At step 14, the client establishes a connection to the server (again in case that a connection oriented protocol like TCP is used, otherwise the step of establishing connection may not be necessary).
[0043] In the following step 16, the client calculates the offset I according to the instructions above, as well as the OptimalTransitionTime, i.e. the delay before joining multicast.
[0044] In the following step 18, the client sends a command to the server that contains information about the channel ID and the stream position from where to start burst at time T - I.
[0045] The client starts receiving a unicast stream, and optionally fills buffers, starts playing, etc., in step 20.
[0046] In step 22 the client determines, whether there is any problem in establishing connection to the server, whether the server is unable to execute the command received from the client according to step 18, or whether the client does not receive the unicast stream for any reason. If there is a problem of this kind, the client proceeds to the next step 22, according to which it will try to use multicast functionality without the initial unicast burst by immediately going to step 26 and issuing a join multicast request. If no problems can be detected by the client, the method proceeds to step 24, with the client waiting for the OptimalTransitionTime, while still receiving a unicast stream and playing.
[0047] If the OptimalTransitionTime is over, the method proceeds to step 26, with the client issuing a multicast join request, while the client still receives a unicast stream and plays to the user according to step 28.
[0048] According to step 30, the client determines, whether any multicast packets start arriving. If no multicast packets arrive, the client will still continue receiving a unicast stream and playing, which may happen when the network multicast functionality is down or is experiencing any problems.
[0049] If first multicast packets arrive, the client will stop receiving the unicast stream according to step 32 either by issuing an appropriate command to the server, or by simply closing the connection (if any).
[0050] According to step 34, the client receives a multicast stream and plays the media to the user.
[0051] In another step 36 the client checks if there were any "holes", i.e. lost packets in the stream when accomplishing unicast to multicast transition. If this is the case, the client will ask the server to retransmit any lost packets to fill the "holes". During the multicast stream reception client may ask the server to retransmit lost packets (if any).
[0052] According to step 38, if the multicast stream stops for longer than some predefined time interval, the client may decide to switch to the unicast stream. To do so the method returns to the step 1.

Claims

Claims
Method for initiating streaming media delivery over a network from a server to a client, comprising the steps of:
Determination of the technical environment and network connection parameters of the client through the client,
Client issuing a command to server to initiate streaming media delivery including a channel ID and stream position,
Server receiving the initiate delivery command and starting burst transmission of media according to channel ID and stream position.
Method according to claim 1, wherein, before the client issues the command to initiate streaming media delivery, the additional steps of the client sending a connect request to the server, and the server accepting the connect request are performed.
Method according to claim 1 or 2, comprising the additional step of the server terminating the burst transmission after a defined time, and continuing streaming at a nominal bit rate.
Method according to any of the preceding claims, wherein circular buffers are used in the server to store the stream.
Method according to any of the preceding claims, wherein the step of determining the technical environment includes calculating an offset, and a delay before joining multicast based at least upon one of channel bit rate, line bandwidth, and/or buffer size.
Method according to any of the preceding claims, wherein the initial stream that is transmitted from the server to the client is a unicast stream. Method according to any of the preceding claims, wherein the additional step of determining whether a media stream is being received by the client is performed.
Method according to claim 7, wherein upon determination that the client does not receive a unicast stream, the client issues a multicast join request.
Method according to claim 7, wherein upon determination that the client does receive a unicast stream, the client waits for the delay to join multicast, and, upon reaching the delay, issues a multicast join request to the server.
Method according to claim 9, wherein until the first multicast packet arrives, the client receives the unicast stream.
Method according to claim 10, wherein upon arrival of the first multicast packet, the client stops receipt of the unicast stream.
Method according to claim 11 , wherein the client in stopping receipt of the unicast tream issues a stop unicast command to the server.
Method according to claim 11 , wherein the client in stopping receipt of the unicast stream closes the connection to the server.
Method according to any of claims 1 1 to 13, wherein the client, upon accomplishment of unicast to multicast transition, performs the step of determining the existence of lost packets in the multicast stream.
Method according to any of claims 1 1 to 13, wherein during receipt of the multicast stream the client continuously determines the existence of lost packets in the multicast stream.
16. Method according to claim 14 or 15, wherein the client upon determination that lost packets exist, sends a request to the server to retransmit any lost packets. -l i- iy. Method according to claim 14 or 15, wherein the client upon determination that the multicast stream stops for longer than a predefined time interval additionally performs the step of sending a request to the server to reinitiate unicast streaming.
PCT/EP2013/055721 2012-03-20 2013-03-19 Fast channel change algorithm WO2013139804A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1204874.0A GB2500406A (en) 2012-03-20 2012-03-20 Providing rapid channel changes, with client itself assessing technical environment and network connection parameters
GB1204874.0 2012-03-20

Publications (1)

Publication Number Publication Date
WO2013139804A1 true WO2013139804A1 (en) 2013-09-26

Family

ID=46052228

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2013/055721 WO2013139804A1 (en) 2012-03-20 2013-03-19 Fast channel change algorithm

Country Status (2)

Country Link
GB (1) GB2500406A (en)
WO (1) WO2013139804A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10531132B2 (en) 2017-12-28 2020-01-07 Stmicroelectronics International N.V. Methods and techniques for reducing latency in changing channels in a digital video environment

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128396A1 (en) * 2002-12-30 2004-07-01 Patrick Stuart Raymond Adaptable accelerated content streaming
US20090077255A1 (en) 2004-12-10 2009-03-19 Microsoft Corporation Accelerated channel change in rate-limited environments
US20100293587A1 (en) * 2009-05-13 2010-11-18 Alcatel-Lucent Usa Inc. Fast channel change handling of late multicast join
US20110289544A1 (en) * 2010-05-19 2011-11-24 Goosen Hendrik A Video streaming system including a fast channel change mechanism
EP2400692A1 (en) * 2009-02-27 2011-12-28 Huawei Technologies Co. Ltd. Method, terminal device and channel switching server for processing abnormality in channel switching

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182875A3 (en) * 2000-07-06 2003-11-26 Matsushita Electric Industrial Co., Ltd. Streaming method and corresponding system
KR101837687B1 (en) * 2010-06-04 2018-03-12 삼성전자주식회사 Method and apparatus for adaptive streaming based on plurality of elements determining quality of content

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040128396A1 (en) * 2002-12-30 2004-07-01 Patrick Stuart Raymond Adaptable accelerated content streaming
US20090077255A1 (en) 2004-12-10 2009-03-19 Microsoft Corporation Accelerated channel change in rate-limited environments
EP2400692A1 (en) * 2009-02-27 2011-12-28 Huawei Technologies Co. Ltd. Method, terminal device and channel switching server for processing abnormality in channel switching
US20100293587A1 (en) * 2009-05-13 2010-11-18 Alcatel-Lucent Usa Inc. Fast channel change handling of late multicast join
US20110289544A1 (en) * 2010-05-19 2011-11-24 Goosen Hendrik A Video streaming system including a fast channel change mechanism

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10531132B2 (en) 2017-12-28 2020-01-07 Stmicroelectronics International N.V. Methods and techniques for reducing latency in changing channels in a digital video environment

Also Published As

Publication number Publication date
GB2500406A (en) 2013-09-25
GB201204874D0 (en) 2012-05-02

Similar Documents

Publication Publication Date Title
EP1294193B1 (en) Method and apparatus for changing received streaming content channels
EP2137937B1 (en) Bandwidth allocation control in multiple video streaming
US8474001B2 (en) Near real time delivery of variable bit rate media streams
EP3348068B1 (en) Fast channel change in a multicast adaptive bitrate (mabr) streaming network using multicast repeat segment bursts in a dedicated bandwidth pipe
US20120254457A1 (en) System and method of adaptive transport of multimedia data
EP3348069B1 (en) Fast channel change in a multicast adaptive bitrate (mabr) streaming network using http download segment recovery in a dedicated bandwidth pipe
EP3348070B1 (en) Fast channel change in a multicast adaptive bitrate (mabr) streaming network using http download segment recovery in a shared progressive abr download pipe
EP2383999A1 (en) Controlling an adaptive streaming of digital content
JP5421346B2 (en) High-speed transmission method and apparatus for unicast stream in high-speed channel change
KR20060003349A (en) Data requesting and transmitting devices and processes
JP2012527164A (en) Fast channel change processing for slow multicast subscriptions
CN104427400A (en) Streaming media transmission method and system, and streaming media server
WO2010041469A1 (en) Content distribution system, content distribution method, and computer program
EP2192740B1 (en) Method and apparatus for receiving content
WO2013139804A1 (en) Fast channel change algorithm
CN101212407A (en) Multicast channel quick start method
CN105245946B (en) Method, device and system for controlling flow of variable-code-rate media stream
WO2013160042A1 (en) System for packet loss recovery
KR101008356B1 (en) Streaming Relay Apparatus, User Terminal Device, and Streaming Service Relay Method
CN114786029B (en) Intelligent set top box and live channel switching method
CN101212406A (en) Multicast channel quick start system
EP2645671A1 (en) Switching the playing out of information content beween end-user devices
WO2022207310A1 (en) Content delivery
GB2613626A (en) Content delivery
CN110071919A (en) A kind of multimedia transmission method based on embedded streaming media technology

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13711346

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13711346

Country of ref document: EP

Kind code of ref document: A1