WO2009103343A1 - Method and apparatus for distributing media over a communications network - Google Patents

Method and apparatus for distributing media over a communications network Download PDF

Info

Publication number
WO2009103343A1
WO2009103343A1 PCT/EP2008/052183 EP2008052183W WO2009103343A1 WO 2009103343 A1 WO2009103343 A1 WO 2009103343A1 EP 2008052183 W EP2008052183 W EP 2008052183W WO 2009103343 A1 WO2009103343 A1 WO 2009103343A1
Authority
WO
WIPO (PCT)
Prior art keywords
fragment
network
fragments
node
data
Prior art date
Application number
PCT/EP2008/052183
Other languages
French (fr)
Inventor
Andreas Ljunggren
Robert Skog
Original Assignee
Telefonaktiebolaget Lm Ericsson (Publ)
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 Telefonaktiebolaget Lm Ericsson (Publ) filed Critical Telefonaktiebolaget Lm Ericsson (Publ)
Priority to PCT/EP2008/052183 priority Critical patent/WO2009103343A1/en
Priority to PCT/EP2008/054590 priority patent/WO2009103351A1/en
Publication of WO2009103343A1 publication Critical patent/WO2009103343A1/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/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/235Processing of additional data, e.g. scrambling of additional data or processing content descriptors
    • 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/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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/435Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet
    • 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/47End-user applications
    • H04N21/478Supplemental services, e.g. displaying phone caller identification, shopping application
    • H04N21/4788Supplemental services, e.g. displaying phone caller identification, shopping application communicating with other users, e.g. chatting
    • 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/632Control 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 using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
    • 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/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Definitions

  • the invention relates to the field of distributing media over a communications network, and in particular to distribution of IPTV using a Peer to Peer communications network.
  • IPTV IPTV
  • IPTV is typically broadcast using a broadband access network, in which channels are transmitted over a broadband network from a super head-end down to an end-user's set top box (STB).
  • STB set top box
  • Linear content delivery in which all channels in a subscription are simultaneously delivered to a user's set top box (STB), is not suitable for IPTV, as IPTV has limited bandwidth available over a broadband connection.
  • a typical ADSL broadband connection provides a capacity of between 3 and 8 Mbps, and ADSL2 promises to deliver up to 25 Mbps downstream, whereas VDSL can provide a capacity of greater than 30 Mbps.
  • Standard quality MPEG 2 IPTV content requires 2 Mbps per channel, and HDTV will require around 8-10 Mbps per channel.
  • the MPEG 4 standard will approximately halve the bandwidth required to deliver IPTV content with the same quality. Nevertheless, the available bandwidth is a scarce resource, and IPTV solutions must limit the number of channels that can be delivered simultaneously.
  • FIG. 1 illustrates a known way of distributing media in which an IPTV media stream originates in a service provider network 1 , is passed to a core network 2, is further passed into a metro network 3, and finally is sent via access networks 4 to each home network 5 that contains an STB that wishes to receive the media stream.
  • Networks can quickly become saturated due to heavy traffic loads.
  • content can be multicast to reduce bandwidth demands for broadcast TV distribution.
  • Video on Demand (VoD) services can be handled by VoD cache servers located close to the end-user.
  • such caches require additional investment, and many routers would need to be replaced, as existing routers may not support IPTV multicasts.
  • IPTV media stream can be delivered to a STB from another STB, from a media injector from which the stream originates, or from any other peer in the network.
  • the IPTV P2P requires a media injector in order to introduce the IPTV media stream into the network, although the media injector is not a true peer in the network in the sense that it only sends data but does not receive data from the peers.
  • Figure 3 is a schematic representation of a simple IPTV P2P network 1.
  • the network 1 includes an IPTV back-end 6 and two STBs STB1 and STB2.
  • Each STB includes a P2P network interface 12, 13 to which is connected a video decoder 9, 11.
  • STB2 receives the IPTV media stream from both STB1 and the IPTV back-end 6, which injects either streaming content or content from a database 7 using a P2P media injector 8.
  • other network nodes may be peers in the network.
  • IPTV media stream is used herein to refer to any kind of data having real time requirements, and includes Video on Demand, user generated TV content, interactive TV, interactive or co-operative games, or audio media.
  • the media stream is to be delivered to the user such that the user can observe the media content at a constant rate without interruptions or delays.
  • Compressed video media generally consists of a series of frames containing the information to be displayed on a user's screen. Each frame can be considered as a "picture" displayed on the screen.
  • Most video compression formats such as in ITU- T VCEG or ISO/IEC MPEG video standards, only the differences between successive pictures are usually encoded. For example, in a scene in which a person walks past a stationary background, only the moving portions of the picture are represented in each frame (either using motion compensation or as image data or as a combination of the two, depending on which representation requires fewer bits to adequately represent the picture). The parts of the scene that are not changing do not need to be sent repeatedly.
  • MPEG media streams contain different frames, such as l-frames ("intra” frames), P-frames ("predicted” frames) and B-frames ("bi-predictive” or "bi-directional” frames), l-frames do not depend on data contained in the preceding or following frames, as they contain a complete picture.
  • P-frames provide more compression than l-frames because they utilize data contained in the previous l-frame or P-frame.
  • the preceding frame is reconstructed and altered according to incremental extrapolation information.
  • B-frames are similar to P-frames, except that B- frames interpolate data contained in the following frame as well as the preceding frame.
  • B-frames usually provide more compression than P-frames.
  • every 15th frame or so is an l-frame.
  • P-frames and B-frames might follow an l-frame as follows: IBBPBBPBBPBB(I). The order and number of frames in the sequence can be varied.
  • the media stream includes payload data and metadata.
  • the payload data is the media data itself, and is decoded and shown by the receiver.
  • Payload data typically comprises frames as described above.
  • the metadata includes all other data in the media stream. This may be, for example, data describing the payload data, or information establishing signalling between two peers.
  • the media stream is sent in "fragments". Fragments are discrete portions of the media stream containing both the payload data and the metadata. It will be appreciated that a frame and a fragment do not necessarily correspond to each other directly: a single frame may be encoded into many fragments or (in some cases) a single fragment may contain more than one frame.
  • a P2P node e.g. STB2
  • STB2 a P2P node
  • the fragments do not need to be requested individually; typically, of the order of ten fragments are sent in response to each request.
  • requests to nearby peers for fragments should not be made more often than necessary. If such requests are too frequent, both the P2P node(s) from which fragments are requested, and the P2P system itself, may be flooded.
  • the speed at which fragments are inserted into the P2P network depends on the coding rate. For example, fragments containing HDTV content are inserted at a much higher rate than those generated by a low resolution webcam.
  • the media injector 8 inserts fragments containing webcam data into the network. If the P2P network interface 13 of STB2 requests frames at a rate suitable for HDTV, the "webcam" media injector 8 will overloaded.
  • the STB2 since the STB2 is requesting frames at a much higher rate than can be supplied by the media injector 8, its own resources will also be wasted.
  • the invention generally involves the calculation of the rate at which fragments are inserted in the P2P network by looking at tagged time stamps. This information is used to adjust the sending of requests for fragments.
  • a node for use in a non-linear network delivering streaming media.
  • the node comprises a receiver arranged to receive data fragments from the network, where each data fragment is tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point.
  • a buffer is arranged to store the received data fragments.
  • a processor is arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which fragments have been inserted into the network.
  • a transmitter is arranged to request fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
  • the insertion rate is calculated as follows.
  • the fragment counter of a second fragment is subtracted from the fragment counter of a first fragment to generate a fragment number difference between the first and second fragments.
  • the timestamp of the second fragment is subtracted from the timestamp of the first fragment to generate an insertion time difference between the first and second fragments.
  • the insertion rate is obtained by dividing the fragment number difference by the insertion time difference.
  • the fragment request rate may be the same as the calculated insertion rate. Alternatively, an algorithm may be used to ensure that the fragment request rate is not constantly changing.
  • the insertion rate may be calculated periodically, and the fragment request rate adapted over time so that it approaches the calculated insertion rate asymptotically. This should ensure that a suitable average is obtained.
  • the initial fragment request rate should preferably be high.
  • the timestamp on any particular fragment is preferably the internal time at which the frame, of which all or a part is encoded into that fragment, was received by a media injector which inserted the fragments into the network.
  • the timestamp and fragment counter may preferably be included in a metadata portion of each fragment.
  • the receiver may be arranged to receive data fragments from more than one source (e.g. a media injector and another peer node). In this case, it will still be the initial insertion rate by the media injector which is calculated by the node.
  • more than one source e.g. a media injector and another peer node.
  • the network is preferably a P2P network and more preferably a P2P IPTV network, but it will be appreciated that the technique may also be used in other situations such as top down and store and forward networks.
  • a method of controlling delivery of streaming media in a non-linear network preferably a Peer-to- Peer IP Television network.
  • the media is encoded into data fragments, each data fragment containing all or part of a media frame.
  • An internal time relative to an epoch time reference point is determined at a media injector connected to the network.
  • Each data fragment is tagged with a fragment counter and a timestamp corresponding to the internal time at the moment the data is encoded.
  • the data fragments are transmitted from the media injector into the network, received at a node connected to the network, and stored in a buffer of the node.
  • an insertion rate at which fragments have been inserted into the network is calculated from the timestamps and fragment counters of at least two data fragments. Fragments are then requested from another node in the network (which may be the media injector) at a fragment request rate determined from the calculated insertion rate.
  • a method of controlling delivery of streaming media in a non-linear network preferably a P2P IPTV network.
  • Data fragments are received at a node in the network, each data fragment tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point.
  • the fragments are stored in a buffer of the node.
  • An insertion rate at which fragments have been inserted into the network is calculated from the timestamps and fragment counters of at least two data fragments. Fragments are then requested from another node in the network at a fragment request rate determined from the calculated insertion rate.
  • apparatus for use in a network comprising means for performing a method according to the second or third aspect of the present invention.
  • a program for controlling an apparatus to perform a method according to the fourth aspect of the present invention is provided.
  • a program which, when loaded into an apparatus, causes the apparatus to become an apparatus according to the fourth aspect of the present invention.
  • the program may be carried on a carrier medium, which may be a storage medium or a transmission medium.
  • an apparatus programmed by a program according to the fifth or sixth aspect of the present invention.
  • a storage medium containing a program according to the fifth or sixth aspect of the present invention.
  • Figure 1 illustrates schematically in a block diagram an architecture for the distribution of IPTV
  • Figure 2 illustrates schematically in a block diagram an architecture for the distribution of IPTV in a peer to peer network
  • Figure 3 illustrates schematically in a block diagram a media injector and two Set Top
  • Figure 4 illustrates schematically in a block diagram the signalling required to initiate an
  • Figure 5 illustrates schematically in a block diagram the signalling required to initiate an
  • Figure 6 illustrates schematically in a block diagram keep alive messages sent by a Set
  • FIG. 7 is a schematic illustration of a buffer of a STB in a P2P IPTV network
  • Figure 8 is a schematic block diagram of a STB
  • Figure 9 is a flow diagram illustrating the tagging and transmission of data fragments by a media injector.
  • Figure 10 is a flow diagram illustrating the receiving and re-ordering of data fragments by a STB.
  • FIG. 4 illustrates typical signalling required to initiate an IPTV broadcast with a first STB STB1.
  • the video decoder 9 in STB1 receives an instruction from a user to start channel X. This is relayed to the P2P network interface 12 in STB1 , which sends a request to a STB manager 10 in the IPTV back-end to join channel X.
  • the STB Manager 10 returns a peer list to the network interface 12 in STB1 , but no IPTV media stream.
  • the peer list includes the P2P media injector 8. Since the media injector can be considered as a peer in the network it is hereinafter referred to as STBO.
  • the network interface 12 in STB1 then sends a request to join channel X to STBO.
  • STBO receives an IPTV media stream from an IPTV media stream source (for example from the database 7 shown in Figure 3), and sends a peer list and an IPTV media stream comprising fragments of frames to the network interface 12 of STB1.
  • the network interface 12 sends the frames to the video decoder 9 in STB1 , which can then show the IPTV media stream to the user.
  • Figure 5 illustrates typical signalling required to initiate an IPTV broadcast with a further STB STB2.
  • STB1 is already receiving an IPTV media stream from STBO.
  • the network interface 13 in STB2 sends a request join channel X to the STB manager 10.
  • the STB manager 10 returns a peer list but no payload to STB2.
  • the peer list includes STBO and STB1 , as these are both possible sources for the IPTV media stream.
  • the network interface 13 in STB2 then sends a request to each of STBO and STB1 to join channel X.
  • STBO and STB1 each send a peer list and IPTV data stream to the network interface 13 in STB2, which passes the frames of the IPTV media stream to the video decoder.
  • all peers in the P2P network send each other "keep alive" messages, as illustrated in Figure 6, to ensure that each STB is included in the list of peers and can both send and receive IPTV media streams.
  • each fragment is tagged with a timestamp and a counter.
  • the IPTV Backend 6 includes a video encoder or database 7 and media injector 8.
  • Media frames are passed from the video encoder 7 to the media injector 8 for encoding into fragments and transmission into the network.
  • the media injector 8 runs an internal clock, and tags the metadata of each fragment with a timestamp taken from this internal clock.
  • the time can be relative to any arbitrary chosen time (e.g. midnight on 28 January 2006, or the time of receipt of the first frame) but is consistent for the media injector.
  • each fragment corresponding to a particular frame will be tagged with the same timestamp - i.e. the time that the particular frame was received by the media injector 8.
  • the fragments are also tagged with a counter to indicate the order in which they are encoded by the media injector.
  • the data fragments are then sent through the network and received by the network interface 13 of the STB2.
  • the transmission through the network may introduce jitter, bursting and packet drops, and the data fragments may take different times to arrive. They do not necessarily arrive at the STB2 at a homogeneous rate corresponding exactly to the rate at which they were transmitted by the media injector 8.
  • the STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in Figure 7.
  • Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41.
  • fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8.
  • the metadata of fragment 17 contains both the counter value (Fragment ID P
  • the metadata of fragment 40 contains the counter value (Fragment I D Last requested fragment) 40 and a timestamp t Last requested fragment-
  • the STB2 calculates the rate at which fragments are being inserted into the network via: Fragment ID Fragment ID
  • Last requested fragment TM Play Out Once the rate of fragment insertion into the network has been determined, this rate is used as a benchmark for the rate at which the STB2 requests subsequent fragments, whether from the media injector 8, or from other peers such asSTBL
  • this calculation uses the timestamp on the fragments, rather than the time at which they are received by the STB2. This ensures that the calculation determines the rate at which they were inserted into the network, rather than the rate at which they are received by the STB2 (which might be very different). It will also be noted that there is no absolute synchronisation between the clock of the STB2 and the clock of the media injector 8: the fragments are labelled with a time reference from the media injector's clock, and the calculation performed by the STB2 simply determines the time difference between fragments.
  • the calculation above is determined on the basis of a comparison between the fragment currently being exported to the video decoder and the most recently requested fragment. It will be appreciated that any pair of fragments may be used to perform the calculation, although the more widely spaced the fragments, the better the averaging in determining the correct rate. Furthermore, the calculation can be repeated every few seconds to ensure that the rate has not changed in the meantime.
  • the initial fragment request rate should be high, to ensure that the all fragments are received to begin with, whatever the media type. For example, if a client STB requests fragments but does not know what type of media to expect, it must request fragments at a sufficiently high rate that it will receive all of them even if a media injector is inserting many fragments (e.g. HDTV media). If the media source turns out to be a low resolution webcam, the fragment request rate can quickly be adjusted to take account of the low insertion rate. The insertion rate should then be re-calculated at periodic intervals to ensure that it remains correct.
  • Figure 8 illustrates a set-top box 31 , which may be any of the STBs shown in the other figures.
  • the set-top box 31 comprises a buffer 70 for storing fragments received from media injectors and/or other set-top boxes or other peers, as discussed above.
  • the set-top box 31 also comprises a transmitter unit 35 and a receiver unit 37, connected to the buffer 70, for communicating with media injectors and the other set-top boxes in the network.
  • the set-top box 31 also comprises a control unit for controlling the functions of the transmitter unit 35, the receiver unit 37 and the buffer 70.
  • control unit is able to identify time stamps and counters on data fragments stored in the buffer, and determine the rate of insertion of fragments into the network by using the timestamps and counters of fragments in the buffer. Requests for further fragments can then be sent at an appropriate rate.
  • the receiver may be implemented as a software module in a television set, which will then be able to receive IPTV from the network and display it to the user.
  • the set-top box is implemented as a software module, for example in a personal computer or other terminal having data processing capabilities. The stream can then be forwarded from the set-top box to any display unit, including a television set, or the computer's own display for display to the user.
  • Figure 9 is a flow chart illustrating the actions carried out by the media injector 8 in the IPTV server 6 shown in Figure 7.
  • Each data fragment is tagged with a timestamp, the timestamp reflecting the time, relative to a reference epoch time, that a frame, of which at least a part is encoded into that fragment, was received by the media injector.
  • Figure 10 is a flow chart illustrating the actions carried out by the P2P network interface 13 in the STB2.
  • S6 Data fragments are received from the network.
  • S8 The rate at which fragments were inserted into the network is calculated from the timestamp and counters of two fragments.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Method and Apparatus for Distributing Media over a Communications Network A method and apparatus for distributing media over a P2P IPTV network is described. The media is encoded into data fragments An internal time relative to an epoch time reference point is determined at a media injector. Each data fragment is tagged with a fragment counter and a timestamp corresponding to the internal time at the moment the data is encoded. The data fragments are transmitted into the network, and received at a peer node, which stores the data fragments in a buffer. At the node, an insertion rate at which the fragments have been inserted into the network is calculated from the timestamps and fragment counters of at least two data fragments. Fragments are then requested from another node in the network (which may be the media injector) at a fragment request rate determined from the calculated insertion rate.

Description

Method and Apparatus for Distributing Media over a Communications Network
TECHNICAL FIELD
The invention relates to the field of distributing media over a communications network, and in particular to distribution of IPTV using a Peer to Peer communications network.
BACKGROUND
TV services broadcast over an IP network are referred to as IPTV. IPTV is typically broadcast using a broadband access network, in which channels are transmitted over a broadband network from a super head-end down to an end-user's set top box (STB).
Linear content delivery, in which all channels in a subscription are simultaneously delivered to a user's set top box (STB), is not suitable for IPTV, as IPTV has limited bandwidth available over a broadband connection. A typical ADSL broadband connection provides a capacity of between 3 and 8 Mbps, and ADSL2 promises to deliver up to 25 Mbps downstream, whereas VDSL can provide a capacity of greater than 30 Mbps. Standard quality MPEG 2 IPTV content requires 2 Mbps per channel, and HDTV will require around 8-10 Mbps per channel. The MPEG 4 standard will approximately halve the bandwidth required to deliver IPTV content with the same quality. Nevertheless, the available bandwidth is a scarce resource, and IPTV solutions must limit the number of channels that can be delivered simultaneously.
Figure 1 illustrates a known way of distributing media in which an IPTV media stream originates in a service provider network 1 , is passed to a core network 2, is further passed into a metro network 3, and finally is sent via access networks 4 to each home network 5 that contains an STB that wishes to receive the media stream. Networks can quickly become saturated due to heavy traffic loads. In order to mitigate this problem, content can be multicast to reduce bandwidth demands for broadcast TV distribution. Furthermore, Video on Demand (VoD) services can be handled by VoD cache servers located close to the end-user. However, such caches require additional investment, and many routers would need to be replaced, as existing routers may not support IPTV multicasts. It is known to distribute an IPTV service using a Peer to Peer (P2P) network, as illustrated in Figure 2. Each STB is a peer in the network. An IPTV media stream can be delivered to a STB from another STB, from a media injector from which the stream originates, or from any other peer in the network.
The IPTV P2P requires a media injector in order to introduce the IPTV media stream into the network, although the media injector is not a true peer in the network in the sense that it only sends data but does not receive data from the peers. This is illustrated in Figure 3, which is a schematic representation of a simple IPTV P2P network 1. The network 1 includes an IPTV back-end 6 and two STBs STB1 and STB2. Each STB includes a P2P network interface 12, 13 to which is connected a video decoder 9, 11. In this example, STB2 receives the IPTV media stream from both STB1 and the IPTV back-end 6, which injects either streaming content or content from a database 7 using a P2P media injector 8. Note that other network nodes (in addition to nodes in STBs) may be peers in the network.
Note that the term "IPTV media stream" is used herein to refer to any kind of data having real time requirements, and includes Video on Demand, user generated TV content, interactive TV, interactive or co-operative games, or audio media. The media stream is to be delivered to the user such that the user can observe the media content at a constant rate without interruptions or delays. There is some latency in the P2P network, caused by buffers in each STB and the time it takes to establish communication between peers.
Compressed video media generally consists of a series of frames containing the information to be displayed on a user's screen. Each frame can be considered as a "picture" displayed on the screen. In most video compression formats, such as in ITU- T VCEG or ISO/IEC MPEG video standards, only the differences between successive pictures are usually encoded. For example, in a scene in which a person walks past a stationary background, only the moving portions of the picture are represented in each frame (either using motion compensation or as image data or as a combination of the two, depending on which representation requires fewer bits to adequately represent the picture). The parts of the scene that are not changing do not need to be sent repeatedly. For example, MPEG media streams contain different frames, such as l-frames ("intra" frames), P-frames ("predicted" frames) and B-frames ("bi-predictive" or "bi-directional" frames), l-frames do not depend on data contained in the preceding or following frames, as they contain a complete picture. P-frames provide more compression than l-frames because they utilize data contained in the previous l-frame or P-frame. When generating a P-frame, the preceding frame is reconstructed and altered according to incremental extrapolation information. B-frames are similar to P-frames, except that B- frames interpolate data contained in the following frame as well as the preceding frame. As a result, B-frames usually provide more compression than P-frames. In some systems, every 15th frame or so is an l-frame. P-frames and B-frames might follow an l-frame as follows: IBBPBBPBBPBB(I). The order and number of frames in the sequence can be varied.
The media stream includes payload data and metadata. The payload data is the media data itself, and is decoded and shown by the receiver. Payload data typically comprises frames as described above. The metadata includes all other data in the media stream. This may be, for example, data describing the payload data, or information establishing signalling between two peers. In order to facilitate handling of the media stream, the media stream is sent in "fragments". Fragments are discrete portions of the media stream containing both the payload data and the metadata. It will be appreciated that a frame and a fragment do not necessarily correspond to each other directly: a single frame may be encoded into many fragments or (in some cases) a single fragment may contain more than one frame.
In order to obtain data, a P2P node (e.g. STB2) sends requests for media fragments to nearby peers and/or media injectors. The fragments do not need to be requested individually; typically, of the order of ten fragments are sent in response to each request. However, requests to nearby peers for fragments should not be made more often than necessary. If such requests are too frequent, both the P2P node(s) from which fragments are requested, and the P2P system itself, may be flooded.
The speed at which fragments are inserted into the P2P network depends on the coding rate. For example, fragments containing HDTV content are inserted at a much higher rate than those generated by a low resolution webcam. Returning to Figure 3, suppose the media injector 8 inserts fragments containing webcam data into the network. If the P2P network interface 13 of STB2 requests frames at a rate suitable for HDTV, the "webcam" media injector 8 will overloaded.
Furthermore, since the STB2 is requesting frames at a much higher rate than can be supplied by the media injector 8, its own resources will also be wasted.
There is thus a need for a P2P client to be able to determine the "quality" of media inserted in the P2P network, to avoid making requests to other peers too frequently.
SUMMARY
The invention generally involves the calculation of the rate at which fragments are inserted in the P2P network by looking at tagged time stamps. This information is used to adjust the sending of requests for fragments.
In accordance with a first aspect of the present invention, there is provided a node for use in a non-linear network delivering streaming media. The node comprises a receiver arranged to receive data fragments from the network, where each data fragment is tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point. A buffer is arranged to store the received data fragments. A processor is arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which fragments have been inserted into the network. A transmitter is arranged to request fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
Preferably, the insertion rate is calculated as follows. The fragment counter of a second fragment is subtracted from the fragment counter of a first fragment to generate a fragment number difference between the first and second fragments. The timestamp of the second fragment is subtracted from the timestamp of the first fragment to generate an insertion time difference between the first and second fragments. The insertion rate is obtained by dividing the fragment number difference by the insertion time difference.
The fragment request rate may be the same as the calculated insertion rate. Alternatively, an algorithm may be used to ensure that the fragment request rate is not constantly changing. The insertion rate may be calculated periodically, and the fragment request rate adapted over time so that it approaches the calculated insertion rate asymptotically. This should ensure that a suitable average is obtained. The initial fragment request rate should preferably be high.
It is likely that more than one fragment will be required for each frame of media content. The timestamp on any particular fragment is preferably the internal time at which the frame, of which all or a part is encoded into that fragment, was received by a media injector which inserted the fragments into the network. The timestamp and fragment counter may preferably be included in a metadata portion of each fragment.
The receiver may be arranged to receive data fragments from more than one source (e.g. a media injector and another peer node). In this case, it will still be the initial insertion rate by the media injector which is calculated by the node.
The network is preferably a P2P network and more preferably a P2P IPTV network, but it will be appreciated that the technique may also be used in other situations such as top down and store and forward networks.
According to a second aspect of the present invention, there is provided a method of controlling delivery of streaming media in a non-linear network, preferably a Peer-to- Peer IP Television network. The media is encoded into data fragments, each data fragment containing all or part of a media frame. An internal time relative to an epoch time reference point is determined at a media injector connected to the network. Each data fragment is tagged with a fragment counter and a timestamp corresponding to the internal time at the moment the data is encoded. The data fragments are transmitted from the media injector into the network, received at a node connected to the network, and stored in a buffer of the node. At the node, an insertion rate at which fragments have been inserted into the network is calculated from the timestamps and fragment counters of at least two data fragments. Fragments are then requested from another node in the network (which may be the media injector) at a fragment request rate determined from the calculated insertion rate.
According to a third aspect of the present invention there is provided a method of controlling delivery of streaming media in a non-linear network preferably a P2P IPTV network. Data fragments are received at a node in the network, each data fragment tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point. The fragments are stored in a buffer of the node. An insertion rate at which fragments have been inserted into the network is calculated from the timestamps and fragment counters of at least two data fragments. Fragments are then requested from another node in the network at a fragment request rate determined from the calculated insertion rate.
According to a fourth aspect of the present invention, there is provided apparatus for use in a network, the apparatus comprising means for performing a method according to the second or third aspect of the present invention.
According to a fifth aspect of the present invention, there is provided a program for controlling an apparatus to perform a method according to the fourth aspect of the present invention.
According to a sixth aspect of the present invention there is provided a program which, when loaded into an apparatus, causes the apparatus to become an apparatus according to the fourth aspect of the present invention.
The program may be carried on a carrier medium, which may be a storage medium or a transmission medium.
According to an seventh aspect of the present invention, there is provided an apparatus programmed by a program according to the fifth or sixth aspect of the present invention.
According to a eighth aspect of the present invention, there is provided a storage medium containing a program according to the fifth or sixth aspect of the present invention.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates schematically in a block diagram an architecture for the distribution of IPTV; Figure 2 illustrates schematically in a block diagram an architecture for the distribution of IPTV in a peer to peer network; Figure 3 illustrates schematically in a block diagram a media injector and two Set Top
Boxes;
Figure 4 illustrates schematically in a block diagram the signalling required to initiate an
IPTV broadcast with a first Set Top Box; Figure 5 illustrates schematically in a block diagram the signalling required to initiate an
IPTV broadcast with a further Set Top Box;
Figure 6 illustrates schematically in a block diagram keep alive messages sent by a Set
Top Box;
Figure 7 is a schematic illustration of a buffer of a STB in a P2P IPTV network; Figure 8 is a schematic block diagram of a STB;
Figure 9 is a flow diagram illustrating the tagging and transmission of data fragments by a media injector; and
Figure 10 is a flow diagram illustrating the receiving and re-ordering of data fragments by a STB.
DETAILED DESCRIPTION
The following description sets forth specific details, such as particular embodiments, procedures, techniques, etc. for purposes of explanation and not limitation. In some instances, detailed descriptions of well known methods, interfaces, circuits, and devices are omitted so as not obscure the description with unnecessary detail. Moreover, individual blocks are shown in some of the drawings. It will be appreciated that the functions of those blocks may be implemented using individual hardware circuits, using software programs and data, in conjunction with a suitably programmed digital microprocessor or general purpose computer, using application specific integrated circuitry, and/or using one or more digital signal processors.
Figure 4 illustrates typical signalling required to initiate an IPTV broadcast with a first STB STB1. The video decoder 9 in STB1 receives an instruction from a user to start channel X. This is relayed to the P2P network interface 12 in STB1 , which sends a request to a STB manager 10 in the IPTV back-end to join channel X. The STB Manager 10 returns a peer list to the network interface 12 in STB1 , but no IPTV media stream. The peer list includes the P2P media injector 8. Since the media injector can be considered as a peer in the network it is hereinafter referred to as STBO. The network interface 12 in STB1 then sends a request to join channel X to STBO. STBO receives an IPTV media stream from an IPTV media stream source (for example from the database 7 shown in Figure 3), and sends a peer list and an IPTV media stream comprising fragments of frames to the network interface 12 of STB1. The network interface 12 sends the frames to the video decoder 9 in STB1 , which can then show the IPTV media stream to the user.
Figure 5 illustrates typical signalling required to initiate an IPTV broadcast with a further STB STB2. It is assumed that STB1 is already receiving an IPTV media stream from STBO. When the user of STB2 wishes to receive channel X, she sends an instruction to the logic within STB2, which is relayed to the network interface 13 in STB2. The network interface 13 in STB2 sends a request join channel X to the STB manager 10. The STB manager 10 returns a peer list but no payload to STB2. The peer list includes STBO and STB1 , as these are both possible sources for the IPTV media stream. The network interface 13 in STB2 then sends a request to each of STBO and STB1 to join channel X. STBO and STB1 each send a peer list and IPTV data stream to the network interface 13 in STB2, which passes the frames of the IPTV media stream to the video decoder.
It is preferred that all peers in the P2P network send each other "keep alive" messages, as illustrated in Figure 6, to ensure that each STB is included in the list of peers and can both send and receive IPTV media streams.
When data is inserted into the network, each fragment is tagged with a timestamp and a counter. This can be understood by returning to Figure 3, in which the IPTV Backend 6 includes a video encoder or database 7 and media injector 8. Media frames are passed from the video encoder 7 to the media injector 8 for encoding into fragments and transmission into the network. The media injector 8 runs an internal clock, and tags the metadata of each fragment with a timestamp taken from this internal clock. The time can be relative to any arbitrary chosen time (e.g. midnight on 28 January 2006, or the time of receipt of the first frame) but is consistent for the media injector. The time used is the time (relative to the arbitrary chosen time) that the frame is received by the media injector. If the arbitrary chosen time is the time the first frame is received by the media injector, it can be seen that frames could be sent to the media injector at, for example, T=O, 2, 4, 7, 8, 12 and 13 ms.
It will be appreciated that there need not be a direct correlation between a single media frame and a single data fragment. It is frequently the case that one frame is encoded into many fragments. In this case, each fragment corresponding to a particular frame will be tagged with the same timestamp - i.e. the time that the particular frame was received by the media injector 8. The fragments are also tagged with a counter to indicate the order in which they are encoded by the media injector.
The data fragments are then sent through the network and received by the network interface 13 of the STB2. The transmission through the network may introduce jitter, bursting and packet drops, and the data fragments may take different times to arrive. They do not necessarily arrive at the STB2 at a homogeneous rate corresponding exactly to the rate at which they were transmitted by the media injector 8.
The STB2 saves all of the fragments into a buffer 70, e.g. a sliding window buffer or a ring buffer, as shown in Figure 7. Figure 7 illustrates the buffer 70 at a snapshot in time when it contains fragments having counters 15-41. At the time snapshot shown in Figure 7, fragment 17 is currently being exported to the video decoder 1 1 of STB2 for decoding, and fragment 40 (the last requested fragment) is being written in to the buffer, having been received from the media injector 8. The metadata of fragment 17 contains both the counter value (Fragment IDP|ay out) 17, and a timestamp (relative to the arbitrary epoch time) having value tPιay out- The metadata of fragment 40 contains the counter value (Fragment I DLast requested fragment) 40 and a timestamp tLast requested fragment-
Once the STB2 has been receiving fragments for a predetermined time (x seconds), it calculates the rate at which fragments are being inserted into the network via: Fragment ID Fragment ID
Last requested fragment - Play Out
Last requested fragment Play Out Once the rate of fragment insertion into the network has been determined, this rate is used as a benchmark for the rate at which the STB2 requests subsequent fragments, whether from the media injector 8, or from other peers such asSTBL
It will be noted that this calculation uses the timestamp on the fragments, rather than the time at which they are received by the STB2. This ensures that the calculation determines the rate at which they were inserted into the network, rather than the rate at which they are received by the STB2 (which might be very different). It will also be noted that there is no absolute synchronisation between the clock of the STB2 and the clock of the media injector 8: the fragments are labelled with a time reference from the media injector's clock, and the calculation performed by the STB2 simply determines the time difference between fragments.
It will further be noted that the calculation above is determined on the basis of a comparison between the fragment currently being exported to the video decoder and the most recently requested fragment. It will be appreciated that any pair of fragments may be used to perform the calculation, although the more widely spaced the fragments, the better the averaging in determining the correct rate. Furthermore, the calculation can be repeated every few seconds to ensure that the rate has not changed in the meantime.
The initial fragment request rate should be high, to ensure that the all fragments are received to begin with, whatever the media type. For example, if a client STB requests fragments but does not know what type of media to expect, it must request fragments at a sufficiently high rate that it will receive all of them even if a media injector is inserting many fragments (e.g. HDTV media). If the media source turns out to be a low resolution webcam, the fragment request rate can quickly be adjusted to take account of the low insertion rate. The insertion rate should then be re-calculated at periodic intervals to ensure that it remains correct.
Figure 8 illustrates a set-top box 31 , which may be any of the STBs shown in the other figures. In addition to the functions normally found in a set-top box known in the art, the set-top box 31 comprises a buffer 70 for storing fragments received from media injectors and/or other set-top boxes or other peers, as discussed above. The set-top box 31 also comprises a transmitter unit 35 and a receiver unit 37, connected to the buffer 70, for communicating with media injectors and the other set-top boxes in the network. The set-top box 31 also comprises a control unit for controlling the functions of the transmitter unit 35, the receiver unit 37 and the buffer 70. In particular, the control unit is able to identify time stamps and counters on data fragments stored in the buffer, and determine the rate of insertion of fragments into the network by using the timestamps and counters of fragments in the buffer. Requests for further fragments can then be sent at an appropriate rate. The receiver may be implemented as a software module in a television set, which will then be able to receive IPTV from the network and display it to the user. Alternatively, the set-top box is implemented as a software module, for example in a personal computer or other terminal having data processing capabilities. The stream can then be forwarded from the set-top box to any display unit, including a television set, or the computer's own display for display to the user.
Figure 9 is a flow chart illustrating the actions carried out by the media injector 8 in the IPTV server 6 shown in Figure 7.
S1 : Media frames are received from the video encoder or database 7.
S2: The frames are encoded into data fragments.
S3: Each data fragment is tagged with a counter.
S4: Each data fragment is tagged with a timestamp, the timestamp reflecting the time, relative to a reference epoch time, that a frame, of which at least a part is encoded into that fragment, was received by the media injector.
S5: The tagged data fragments are transmitted into the network.
Figure 10 is a flow chart illustrating the actions carried out by the P2P network interface 13 in the STB2.
S6: Data fragments are received from the network.
S7: The fragments are saved in the buffer.
S8: The rate at which fragments were inserted into the network is calculated from the timestamp and counters of two fragments.
S9: The rate at which fragments are requested from other peers in the network is modified to match the calculated rate of insertion. It will be appreciated that variations from the above described embodiments may still fall within the scope of the claims. For example, the set top boxes have all been described as including "video decoders" but it will be appreciated that decoding for any form of media may be envisaged.
It will also be appreciated that the above described embodiments have been described with reference to P2P IPTV networks, but the invention may also be used in other nonlinear environments, for example top down networks and store and forward networks.
Although various embodiments have been shown and described in detail, the claims are not limited to any particular embodiment or example. None of the above description should be read as implying that any particular element, step, or function is essential such that it must be included in the claims' scope. The scope of protection is defined by the claims.

Claims

CLAIMS:
1. A node for use in a non-linear network delivering streaming media, comprising: a receiver arranged to receive data fragments from the network, each data fragment tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point; a buffer arranged to store the received data fragments; a processor arranged to calculate, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which the fragments have been inserted into the network; and a transmitter arranged to request fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
2. The node of claim 1 , wherein the processor is arranged to calculate the insertion rate by: calculating a fragment number difference between a first and a second fragment by subtracting the fragment counter of the second fragment from the fragment counter of the first fragment; calculating an insertion time difference between the first and the second fragment by subtracting the timestamp of the second fragment from the timestamp of the first fragment; and obtaining the insertion rate by dividing the fragment number difference by the insertion time difference.
3. The node of claim 1 or 2, wherein the fragment request rate is the same as the calculated insertion rate.
4. The node of claim 1 or 2, wherein the insertion rate is calculated periodically and the fragment request rate is adapted over time on the basis of the periodically calculated insertion rate.
5. The node of any preceding claim, wherein an initial fragment request rate is high.
6. The node of any preceding claim, wherein the receiver is arranged to receive data fragments from more than one source.
7. The node of any preceding claim, wherein the fragment counter and timestamp are included in a metadata portion of each data fragment.
8. The node of any preceding claim, wherein the network is a Peer-to-Peer IP Television network.
9. The node of any of claims 1 to 7, wherein the network is a top down or store and forward network.
10. A method of controlling delivery of streaming media in a non-linear network, comprising: encoding the media into data fragments, each data fragment containing all or part of a media frame; at a media injector connected to the network, determining an internal time relative to an epoch time reference point; at the media injector, tagging each data fragment with a fragment counter and a timestamp corresponding to the internal time at the moment the data is encoded; transmitting the data fragments from the media injector into the network; receiving the data fragments at a node connected to the network; storing the data fragments in a buffer of the node; at the node, calculating, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which fragments have been inserted into the network; and at the node, requesting fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
1 1. The method of claim 10, wherein the fragment counters and timestamps are included in metadata portions of the data fragments.
12. The method of claim 10 or 1 1 , wherein the node requests the fragments from the media injector.
13. The method of claim 10, 11 or 12, wherein the network is a Peer-to-Peer IP Television network.
14. The method of claim 10, 1 1 or 12, wherein the network is a top down or store and forward network.
15. A method of controlling delivery of streaming media in a non-linear network, comprising: receiving data fragments at a node connected to the network, each data fragment tagged with a fragment counter and a timestamp providing a time interval relative to an epoch time reference point; storing the data fragments in a buffer of the node; calculating, from the timestamps and fragment counters of at least two data fragments, an insertion rate at which the fragments have been inserted into the network; and requesting fragments from another node in the network at a fragment request rate determined from the calculated insertion rate.
16. A program for controlling an apparatus to perform a method as claimed in any one of claims 10 to 15.
17. A program as claimed in claim 16, carried on a carrier medium.
18. A program as claimed in claim 17, wherein the carrier medium is a storage medium.
19. A program as claimed in claim 17, wherein the carrier medium is a transmission medium.
20. An apparatus programmed by a program as claimed in any one of claims 16 to 19.
21. A storage medium containing a program as claimed in any one of claims 16 to 18.
PCT/EP2008/052183 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network WO2009103343A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network
PCT/EP2008/054590 WO2009103351A1 (en) 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network

Publications (1)

Publication Number Publication Date
WO2009103343A1 true WO2009103343A1 (en) 2009-08-27

Family

ID=39929766

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2008/052183 WO2009103343A1 (en) 2008-02-22 2008-02-22 Method and apparatus for distributing media over a communications network
PCT/EP2008/054590 WO2009103351A1 (en) 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/EP2008/054590 WO2009103351A1 (en) 2008-02-22 2008-04-16 Method and apparatus for obtaining media over a communications network

Country Status (1)

Country Link
WO (2) WO2009103343A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103597847A (en) * 2011-05-31 2014-02-19 汤姆逊许可公司 Method and apparatus for streaming multimedia contents
CN110048906A (en) * 2019-03-27 2019-07-23 网宿科技股份有限公司 A kind of method, system, device and server judging node-node transmission quality
US10917497B2 (en) 2019-03-27 2021-02-09 Wangsu Science & Technology Co., Ltd. Method, system, device and server for determining transmission quality of node
WO2023147707A1 (en) * 2022-02-07 2023-08-10 Oppo广东移动通信有限公司 Communication methods, access network devices, core network elements, and terminal devices

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119132A2 (en) * 2010-03-24 2011-09-29 Thomson Licensing Variable bit rate video streaming over peer-to-peer networks
CN103714142A (en) * 2013-12-25 2014-04-09 乐视网信息技术(北京)股份有限公司 Data search method and device
CN110213604B (en) * 2019-05-27 2021-08-20 北京奇艺世纪科技有限公司 Live video sharing method, system and device and computer readable storage medium

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643716A1 (en) * 2004-09-03 2006-04-05 Microsoft Corporation A system and method for receiver driven streaming in a peer-to-peer network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1643716A1 (en) * 2004-09-03 2006-04-05 Microsoft Corporation A system and method for receiver driven streaming in a peer-to-peer network

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DOHYUN KIM ET AL: "AVS: An Adaptive P2P Video Streaming Scheme with Frame Type Aware Scheduling", ADVANCED COMMUNICATION TECHNOLOGY, THE 9TH INTERNATIONAL CONFERENCE ON, IEEE, PI, 1 February 2007 (2007-02-01), pages 1447 - 1452, XP031085030, ISBN: 978-89-5519-131-8 *
PIANESE F ET AL: "PULSE: An Adaptive, Incentive-Based, Unstructured P2P Live Streaming System", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 9, no. 8, 1 December 2007 (2007-12-01), pages 1645 - 1660, XP011196650, ISSN: 1520-9210 *
XIAOJUN HEI ET AL: "Inferring Network-Wide Quality in P2P Live Streaming Systems", IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, IEEE SERVICE CENTER, PISCATAWAY, US, vol. 25, no. 9, 1 December 2007 (2007-12-01), pages 1640 - 1654, XP011198308, ISSN: 0733-8716 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103597847A (en) * 2011-05-31 2014-02-19 汤姆逊许可公司 Method and apparatus for streaming multimedia contents
EP2715987A1 (en) * 2011-05-31 2014-04-09 Thomson Licensing Method and apparatus for streaming multimedia contents
EP2715987A4 (en) * 2011-05-31 2014-11-05 Thomson Licensing Method and apparatus for streaming multimedia contents
CN110048906A (en) * 2019-03-27 2019-07-23 网宿科技股份有限公司 A kind of method, system, device and server judging node-node transmission quality
US10917497B2 (en) 2019-03-27 2021-02-09 Wangsu Science & Technology Co., Ltd. Method, system, device and server for determining transmission quality of node
WO2023147707A1 (en) * 2022-02-07 2023-08-10 Oppo广东移动通信有限公司 Communication methods, access network devices, core network elements, and terminal devices

Also Published As

Publication number Publication date
WO2009103351A1 (en) 2009-08-27

Similar Documents

Publication Publication Date Title
US11856329B2 (en) Dynamic advertisement stream replacement
US10826958B2 (en) Content server media stream management
CA2691085C (en) Method and arrangement for improved media session management
US10771821B2 (en) Overcoming lost IP packets in streaming video in IP networks
CN111372145B (en) Viewpoint switching method and system for multi-viewpoint video
KR20090015051A (en) Method for fast zapping between tv channels
CN101795264A (en) Video data transmission method and system
US20120030707A1 (en) Methods and Arrangements for Channel Change in an IPTV Network
WO2009103343A1 (en) Method and apparatus for distributing media over a communications network
US20110231521A1 (en) Media convergence platform
EP1902547A1 (en) Apparatuses and methods for delivering data stream content to consumer devices
US8316148B2 (en) Method and apparatus for obtaining media over a communications network
US20090259764A1 (en) Intro outro merger with bit rate variation support
WO2009095080A1 (en) Method and apparatus for obtaining media over a communications network
WO2009095078A1 (en) Method and apparatus for obtaining media over a communications network
WO2009095081A1 (en) Method and apparatus for obtaining media over a communications network
WO2009080114A1 (en) Method and apparatus for distributing media over a communications network
CN110798713B (en) Time-shifted television on-demand method, terminal, server and system
WO2009109232A1 (en) Method and apparatus for distributing media over a communications network
Lohan et al. Integrated system for multimedia delivery over broadband ip networks
US8401086B1 (en) System and method for increasing responsiveness to requests for streaming media
CN115883855B (en) Playing data processing method, device, computer equipment and storage medium
WO2009080113A1 (en) Method and apparatus for distributing media over a communications network
WO2009095079A1 (en) Method and apparatus for distributing media over a communications network
WO2017080603A1 (en) Frame alignment technique for live stream television

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: 08717046

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: 08717046

Country of ref document: EP

Kind code of ref document: A1