专利摘要:
The present invention relates to a method for continuously reading on a client equipment (11) a content broadcast within a peer-to-peer network (10) of client equipment (11, 12), said content consisting of a sequence of segments, the client equipment (11) comprising a first buffer memory (M1) temporarily storing at least one raw segment of said content, each raw segment being in a format adapted for transfer within the peer-to-peer network -pair (10), the method being characterized in that it comprises the implementation by data processing means (110) of the equipment (11) of steps of: (a) Conversion into a suitable format for reading on the equipment (11) at least one raw segment of the first buffer memory (M1), and storing said converted segment in a second buffer memory (M2) of the equipment (11), so that the second buffer memory (M2) stores a number between a minimum number and a maximum number of converted segments disposed upstream of a reading point of said content; (b) reading from the second buffer (M2) at least one fragment of the converted segment disposed at said reading point; (c) Deleting said second buffer memory (M2) from at least one converted segment disposed downstream of said reading point, so that the second buffer memory (M2) stores a number less than or equal to a maximum number of converted segments disposed downstream of a reading point of said content, the associated raw segment being temporarily stored in the first buffer memory (M1).
公开号:FR3034943A1
申请号:FR1552976
申请日:2015-04-07
公开日:2016-10-14
发明作者:Axel Delmas;Nikolay Rodionov
申请人:Streamroot Inc;
IPC主号:
专利说明:

[0001] TECHNICAL FIELD The present invention relates to streaming. More specifically, it relates to a method for continuously reading a content broadcast within a peer-to-peer network. STATE OF THE ART The "streaming" (in French "streaming"), refers to a technique of reading a stream audio or video "live", that is to say as and when it is retrieved from the Internet by a client device. It is opposed to downloading, which requires the recovery of all data from the audio or video content before you can read it. In the case of streaming, the storage of the content is temporary and partial, the data being downloaded continuously to a buffer of the client (typically RAM), analyzed on the fly by its processor and quickly transferred to an output interface ( screen and / or speakers) and replaced by new data. Traditionally, the content is made available on a streaming server. The client wishing to access it sends a request to retrieve the first segments (segment is a block of data content, usually corresponding to a few seconds of reading). When there is enough data in the buffer to read the beginning of the content, playback starts. In the background, the stream download continues to continuously feed the buffer with the rest of the content. However, we see that this approach has its limits if a large number of customers want to read the same content simultaneously: the server is saturated, unable to provide the content at a rate sufficient for reading is fluid, and saccades appear.
[0002] It has recently been proposed an alternative strategy based on "peer-to-peer" (P2P), in which each client acts as a server for other clients: we talk about peers. A peer who has started reading the content will retransmit to others segments that he has already received, and so on, hence an ease of dissemination regardless of the number of interested customers.
[0003] This strategy is described in the international application WO 2012/154287.
[0004] 3034943 2 However, although P2P is extremely efficient at downloading files, difficulties appear when it is used for streaming. One constraint relates to the fact that in order to be exchanged for P2P, the data must be kept in a specific format adapted (typically in Javascript if the VVebRTC API is used), a format that is not readable in the state by video players. Thus, thanks to an API such as Media Source Extension, the P2P segments are converted into a video stream. This technique is satisfactory, but the Applicant has found that it was heavy. Indeed, the segments converted into video streams fill a buffer (a buffer) video for reading. So we end up having to store the data twice, which can quickly saturate the cache, and cause slowdowns and inconvenience for the user. This is even more problematic in the case of VOD, "Video On Demand" ie video on demand, or video delayed (as opposed to "live streaming" which will be described later), in which it is desirable to maximize the size of the P2P cache so as to increase the chances that the caches of two peers overlap and that exchanges are possible.
[0005] The present invention improves the situation by providing an innovative P2P streaming data management method, in particular VOD, which is optimal in terms of the efficiency of content delivery, congestion of the peer buffers, and algorithmic simplicity.
[0006] SUMMARY OF THE INVENTION The present invention thus relates to a method of continuously reading on a client equipment a content broadcast within a peer-to-peer network of client equipments, said content consisting of a sequence segment, the client equipment comprising a first buffer temporarily storing at least one raw segment of said content, each raw segment being in a format adapted for transfer within the peer-to-peer network, the method being characterized in that it comprises the implementation by data processing means of the equipment of steps of: (a) Conversion into a format adapted for reading on the equipment of at least one raw segment of the first buffer, and storing said converted segment in a second buffer of the device, so that the second buffer stores a number between a minimum number and a maximum number al of converted segments disposed upstream of a reading point of said content; (b) reading from the second buffer of at least one fragment of the converted segment disposed at said reading point; (c) Deleting said second buffer memory from at least one converted segment disposed downstream from said read point, so that the second buffer stores a number less than or equal to a maximum number of converted segments disposed downstream of a reading point of said content, the associated raw segment being temporarily stored in the first buffer.
[0007] According to other advantageous and nonlimiting features: step (a) comprises the prior request of said raw segment to the other peer-to-peer client equipment; step (a) comprises receiving said raw segment from a content server connected to the peer-to-peer network if it could not be fully recovered from another peer-to-peer network equipment; said raw segment format is not adapted for reading on the equipment, and said converted segment format is not adapted for transfer within the peer-to-peer network; The raw segments are encapsulated in Javascript, and the converted segments are encapsulated in a reader via an HTML5 video tag or a Flash module; the minimum number and the maximum number of converted segments arranged upstream of a reading point of said content are such that the second buffer memory contains between 5 and 100 seconds, preferably between 15 and 60 seconds, upstream segments; the maximum number of converted segments disposed downstream from a reading point of said content is such that the second buffer memory contains less than 30 seconds, preferably less than 20 seconds, preferably less than 10 seconds, of downstream segments; The method comprises: the first verification at a first periodicity that the second buffer memory stores a number greater than said minimum number of converted segments arranged upstream of said reading point; and / or the second checking at a second periodicity that the second buffer stores a number less than said maximum number of converted segments disposed downstream of said read point; The method comprising performing step (a) in the event of a negative result of the first check, and performing step (c) in case of a negative result of the second check; the first periodicity is at least ten times greater than the second periodicity; the second periodicity is such that the time interval between two implementations of the second verification is less than the content duration corresponding to the maximum number of downstream segments stored in the second buffer memory; the data processing means of the equipment are configured to maximize the number of raw segments stored in the first buffer memory.
[0008] According to a second aspect, there is proposed a client equipment of a peer-to-peer network of client equipment, characterized in that it comprises a first buffer memory temporarily storing at least one raw segment of a content consisting of a sequence of segments, each raw segment being in a format adapted for transfer within the peer-to-peer network; A second buffer temporarily storing at least one converted segment of said content, each converted segment corresponding to a raw segment converted to a format adapted for playback on the equipment; data processing means configured by the implementation of: a conversion module of a raw segment of the first buffer memory, and storing said converted segment in the second buffer memory; A reading module from the second buffer memory of at least one fragment of a converted segment disposed at a reading point of said content; a module for deleting said second buffer memory 5 from at least one converted segment disposed downstream of said reading point, the conversion and deletion modules being configured so that the second buffer memory stores a number between a minimum number of and a maximum number of converted segments disposed upstream of said read point, and a number less than or equal to a maximum number of converted segments disposed downstream of said read point. According to a third and fourth aspect, the invention respectively relates to a computer program product comprising code instructions for executing a method according to the first aspect of the invention of streaming on a client device. a content broadcast within a peer-to-peer network of client devices, when said program is run on a computer; and computer-readable storage means on which a computer program product comprises code instructions for executing a method according to the first aspect of the invention for streaming on a client equipment of content broadcast within a peer-to-peer network of client devices. PRESENTATION OF THE FIGURES Other features and advantages of the present invention will appear on reading the following description of a preferred embodiment. This description will be given with reference to the appended figures of which: FIG. 1 represents an architecture for implementing the method according to the invention; FIG. 2 illustrates an example of use of buffers in an embodiment of the method according to the invention; FIGS. 3a and 3b are flow charts respectively illustrating a preferred embodiment of steps (a) and (c) of the method according to the invention.
[0009] DETAILED DESCRIPTION Architecture 5 With reference to FIG. 1, the invention proposes a method of continuously reading a content broadcast within a network 1 as represented. Network 1 is here a large-scale telecommunications network and in particular the Internet. This network 1 comprises a peer-to-peer network 10 of client equipment 11, 12.
[0010] Each client equipment 11, 12 is typically personal computer equipment such as a smartphone, a PC, a tablet, etc. connected to the network 1, having data processing means 110 such as a processor, an interface for reading the content, and having two buffers M1 and M2 (also called "buffer"), typically two zones d a random access memory, each of which can store (in a different manner as we will see) all or part of the content temporarily (temporarily, it is understood that the segments are deleted from this memory shortly after they have been read: they are not stored in the long term as is the case for a direct download). As will be seen later, in the preferred case of a browser read, all the segments are typically deleted (ie, the buffers reset) at the latest when closing the browser or the tab in which the video is played. The first buffer M1 is called "peer-to-peer cache". It stores the segments in a "raw" format. By raw segments is meant in a format adapted for the transfer within the peer-to-peer network 10 (we will see 25 how later), but unsuitable for reading on the equipment 11. The second buffer M2 is called "Video buffer". It stores the segments in a format called "converted". By converted segments is meant converted from raw segments in a format adapted for reading on the equipment 11, but unsuitable for transfer within the peer-to-peer network 10.
[0011] As can be seen in FIG. 2 which will be described later, even if the set of raw segments (respectively converted segments) preferably form a single interval (ie these segments are consecutive and forming a sub-sequence of the sequence of segments constituting the content), there may be disjoint intervals if for example the user manually moves the reading point in the video, for example so as to go back. As explained in the introduction, the equipments 11, 12 are "peers" (also called "nodes") of the peer-to-peer network 10. By "client equipments 11, 12 of a peer-to-peer network 10 is meant equipment connected in the network 1 by a peer-to-peer network protocol. In other words, the data processing means of each pair implement a particular program (client software), which can for example be integrated with a web browser, a mobile application, or any other embedded software (for example a player of a case of access to the Internet or a multimedia box, ie a "Set-top box"), for the use of peer-to-peer. Indeed, a peer-to-peer network, or P2P, is a decentralized subnetwork within network 1, in which data can be transferred directly between two client devices 11, 12 of the network 10, without passing through a central server. It thus allows all the client equipment 11, 12 to play both the client and server role. Peers 11, 12 are thus defined as "seeders" (in French "sowers", that is to say data providers) and / or "leechers" (in French "leeches", 20 c that is, data receivers). Said content, which is in particular audio or video content, that is to say a medium of a certain duration, consists of a sequence of segments (called "playlist", in English "playlist") stored on data storage means of a server 2 connected to the peer-to-peer network 10. The segments have a predetermined length, typically one or two seconds of the content, but can range from a fraction of a second to ten seconds. All segments of a given content are generally the same length. The server 2 is a content server, advantageously present in the network 1 and connected to the peer-to-peer network 10. In other words, it is a 30 (or more) servers of the Internet network 1 putting available segments of various contents according to a given streaming protocol. For example, the example of HLS ("HTTP Live Streaming"), in which the segments are "ts" files, listed in a "m3u8" playlist file. HLS involves the MPEG2 format for the content. DASH streaming, Smooth streaming, or HDS protocols are also mentioned. The raw segments are encapsulated by example in JavaScript, so as to allow peer exchange of these segments via a WebRTC type API. Server 2 is the primary source of the segments, since initially no peer has the content (before a first transfer from server 2 to peer 11, 12). The contents are either originally stored in their entirety on the server 2 (case of the aforementioned VOD), or generated in real time (case of live streaming, or live streaming), and in the latter case the list of segments that constitutes them evolves dynamically. "Live Streaming" (Live Streaming) proposes to broadcast in real time content associated with "live" events, for example concerts, conferences, sports events, games of video games, etc., which are going on simultaneously. With respect to the streaming of an already existing content such as a film, a content broadcast in live streaming is indeed generated as the associated event proceeds. Technically, as in the case of a live television, such content can be broadcast with a slight delay, that the user wants the lowest possible. This delay is typically of the order of one minute, but can go down to about twenty seconds. This makes a playlist of only a handful of segments (at most a few tens) 20 available at all times, the segments of this list being renewed dynamically according to a rotation: as the event becomes unfolding new segments are created, "get older", are received and read by customers (at the end of the expected delay), and finally get off the list. In the latter case (live streaming), the content should rather be seen as a streaming stream. The sequence of segments is thus dynamic, that is to say that it is updated regularly. Whenever a new segment is generated it is added at the end of the sequence, and the first segment of the (oldest) sequence is deleted. All others shift according to a rolling mechanism that can be related to a FIFO list. The first (oldest) segment of the list can be the one at the playback point, in other words the "live" segment (and thus the segments are removed from the playlist as soon as they are read), or a segment "passed" if the content server agrees to read the content with delay (some platforms offer live streaming with up to 2 hours late), this is called the DVR 35 ("digital video recorder").
[0012] Preferably, the present method is implemented in a context of VOD or DVR. It is also advantageously connected to the peer-to-peer network 10 a peer management server 3 called "tracker". The tracker 3 presents data processing means and storage means. It coordinates exchanges between peers 11, 12 (by controlling the client software implemented by each of the client equipment 11, 12), but it is not directly involved in the data transfer and does not have a copy of the file.
[0013] On the other hand, it communicates with the content server 2. For each of the contents stored on this server 2, the tracker 3 receives (on request or by push) from the server 2 a "manifest" file for each of the contents. This manifest file is a description of the content (in XML format for most streaming protocols except HLS), and contains the list of segments.
[0014] The tracker 3 then analyzes the manifest (parsing, i.e. parsing) to retrieve the list of segments. In the case of live streaming, the manifest is in general re-emitted at regular intervals so as to allow an update of the playlist (it is recalled that since the content is continuously generated live new segments enter the list of reading and others leave it when they have become too old and have passed the reading point). Alternatively, a skeleton of manifest (ie without the list of segments) is provided along with temporal indications (including a time stamp, in English "timestamp") making it possible to determine when each new segment is sent, which allows tracker 3 (and client equipment 11, 12) to complete this skeleton and update it on its own. For each manifest (obtained complete or whose playlist has been automatically completed), the tracker 3 performs a "hash", that is to say implements a hash function so as to obtain an imprint of the manifest, which is a signature of the content to which the manifest is associated. It should be noted that the hash can be implemented on the address of the manifest (its URL, "Uniform Resource Locator"), which is interesting since a URL remains constant even if the manifest changes regularly (because of the live streaming ).
[0015] In the remainder of the present description, the focus is on a client device 11 which, if need be, is retrieving the content from other equipment 12 and / or the server 2, ie say that the first buffer M1 already stores at least one raw segment, if possible a subsequence of the sequence constituting the content. The process then begins with the processing means 110 operating the equipment of a conversion step (a) in a format suitable for reading on the equipment 11 of at least one raw segment of the device. first buffer memory Ml. This step consists in transforming the raw segment into a converted segment, which can be read by the reader of the equipment 11 unlike the first one. The client equipment 11 is typically ready to continuously read the contents after a minimum period of segment preloading in the second buffer M2 (the preloaded segments being most often recovered in the first buffer M1 from the server 2), for example ten seconds (or ten segments of a second). Preferably, the reader is the integrated player of an HTML5 compatible browser, and the conversion consists of injecting the video data of the segment through the Media Source Extension API of the browser, after which they are stored in the second M2 buffer and are no longer accessible. In the case of the browser, an HTML5 <video> tag then makes it possible to offer controls on the integrated reader (play, pause, fast forward, etc.), in the same way as a user control interface. This is why the raw version of the segment is kept in the first buffer M1 so as to still allow sharing in the network 10. Note that the present method is not limited to the use of HTML5 tag coupled to the network. Media Source Extension API, and that could for example use a Flash module, see a module integrated natively in any reader. For example, the reader can be the integrated one of a mobile application (for example natively compatible Object-C, C ++, etc.). In any case, there will be the problem of the non-accessibility of the data once they have been injected into the reader. The choice of the segment to be converted is such that the second buffer memory M2 stores a minimal number of converted segments arranged upstream of a reading point of said content. By "upstream" we mean future segments, that is to say which are arranged in the content later (from a temporal point of view) at the point of reading, ie which have not yet been read, and of preferred way the smin, next consecutive segments of the segment sequence constituting the content, sm, n, being said minimum number of upstream segments. In the following description, we speak of upstream segments to designate these converted segments disposed upstream of the reading point. Thus, preferably, this minimum number of upstream segments is expressed in read time. For example, if it is defined that the second buffer memory 10 must contain a minimum time of upstream segments of 15s (advantageously 10s, or even 5s in a particularly optimized management), then in the case of segments of one second the minimum number of upstream segments to be stored by the second memory is fifteen. If the first memory M1 does not contain enough raw segments to respect this minimum number (ie if the segments have not been recovered quickly enough from other equipment 12), then the missing segment (s) are (wholly or partially) ) Recovered from the server 2. More unusually, the number of upstream segments stored by the second cache M2 also respects a maximum number smax +. Thus, the number of these upstream segments is between two extremal values. The idea is to reduce the media buffer (the second buffer M2) to a reduced area around the reading point. Thus, contrary to what could be done in the prior art where each raw segment was converted, which resulted in the need to mobilize twice the size of the P2P cache, the present method proposes with reference to FIG. two buffers M1 and M2 maximizing the first (so as to facilitate exchanges within the peer-to-peer network 10 ensuring greater availability of data) and minimizing the first (since the data it contains does not can no longer be shared, so it is unnecessary to put too much upstream data in the second buffer memory M2, especially if it is known that these data are already in the first buffer memory M1. in reading time, a duration between 100s and 40s, advantageously about 60s (ie for example 6034943 12 sixty segments of a second) is advantageously chosen as the maximum duration upstream. most often simultaneously, the equipment 11 implements a step (b) of reading by the processing means 110 (generally on the fly) from the second buffer memory M2 of at least one fragment of the converted segment disposed at said reading point. The read fragment is rendered on an output interface of the equipment 11. The reading point is shifted in real time to the upstream segments. This entails a step (c) of removing said second buffer memory M2 from at least one converted segment disposed downstream of said reading point (as opposed to upstream, in other words in the segments already read), of so that the second buffer M2 stores a maximum number sm'_ of converted segments disposed downstream of a reading point of said content. Indeed, it is not necessary to keep the segments converted after reading, unless the user decides to interrupt the reading and to return a few seconds back (for example if the user has been disturbed by a noise). In the following description, we speak of downstream segments to designate these converted segments disposed downstream of the reading point. A maximum time of 30s, even 20s, or even lOs downstream segments is largely sufficient. It is not necessary that there be a minimal number of downstream segments. This makes it possible to further minimize the size of the second buffer memory M2 so as to maximize the performance of the device 11. Moreover, the associated raw segment (to the deleted converted segment) is temporarily stored in the first buffer memory M1, so that keep the maximum amount of data in it. In general, it will be understood that the data processing means of the equipment 110 are advantageously configured to maximize the number of raw segments stored in the first buffer memory M1. By way of example, in the case of VOD, it is possible to keep between 100 and 150 MB of content in the first buffer memory M1. This corresponds to about 15-20 min of 1Mbit / s content (a fairly standard bitrate in online video). The highest bit rates are commonly 3.5Mbps for a site that offers high definition, or even higher than 12-15 Mbps for "4K" (Ultra High Definition) content, and bit rates are necessarily much higher. higher (> 12-15 35 Mbit / s with current encodings).
[0016] 3034943 13 For live streaming, the content existing at each moment is quite short because of the rolling and stores much fewer raw segments in the first cache memory M1 (about 20 MB), but this size will probably increase for high bitrates ( about 50MB, and even go back to a size of first M1 buffer memory comparable to that which can be in VOD for the DVR). Recurrence Referring to Figures 3a and 3b, steps (a) and (c) are each repeated at regular intervals. More specifically, tests are performed at regular intervals on the numbers of upstream and downstream converted segments so as to verify if one is in the predetermined intervals. In the negative case, step (a) and / or step (c) are used. More concretely, the method comprises: The first verification at a first periodicity that the second buffer memory M2 stores a number greater than the minimum number of converted segments arranged upstream of said reading point; and / or the second verification at a second periodicity that the second buffer M2 stores a number less than said maximum number of converted segments disposed downstream of said read point. In other words, the first check consists in verifying the presence in the second buffer memory M2 of an acceptable number of upstream converted segments, and the second checking consists in checking for the presence of an acceptable number in the second buffer memory M2 of 25 downstream segments. The method thus comprises the implementation of step (a) in case of a negative result of the first verification (ie if there are not enough upstream segments), and the implementation of the step ( c) in case of a negative result of the second verification (ie if there are too many downstream segments). Thus, steps (a) and (c) are performed more or less regularly depending on the results of the tests. Note that if the second check reveals that the second buffer M2 stores a number greater than the maximum number of converted segments disposed upstream of said read point, then precisely the data processing means 110 block the implementation of the step (a) as long as this excess of segments has not resorbed. This will indeed be the case, of course, as soon as the reading point has advanced following the progression of the reading.
[0017] Step (b) will be considered as continuous implementation so that the reading is never interrupted for the convenience of the user. FIG. 3a shows the case of step (a), that is to say of the first verification, which is advantageously implemented at a first periodicity of approximately every 100 ms (ie the first check is carried out about ten times a second). If a segment in the second buffer memory M2 is missing, the data processing means 110 checks whether the segment is in the first buffer memory M1, and if necessary implements step (a). Otherwise, the segment is previously partially or fully recovered from the content server 2. A "hash" test is implemented if necessary (if the segment comes all or part of the peer-to-peer network 10) to check the integrity of a raw segment before converting it. FIG. 3b shows the case of step (c), that is to say the second verification, which is advantageously implemented recurrently but much rarer than the first verification, ie at least ten times less often, even a hundred times less often (in other words, the first periodicity is ten or a hundred times smaller than the second periodicity). It is indeed important that the first check be done very often to avoid the risk that there are no longer upstream segments and that the user must wait (so-called "rebuffering"), then that an excess of downstream segments does not have unfortunate consequences for the user (in addition to overconsumption of memory). Typically, the second periodicity is such that the duration between two second checks is less than the duration corresponding to the maximum number of downstream converted segments in the second buffer M2, preferably about equal, ie typically 10s. Indeed, insofar as the number of downstream segments is only growing, a too low periodicity of the second verification would make that the downstream segments of the second memory M2 would not be sufficiently often purged and that their number would be on average much higher. at the maximum acceptable value. On the other hand, an excessively high frequency of the second verification serves no purpose and consumes resources of the data processing means 11. The first and / or second verification are also implemented for each "interval", which is ie as explained each continuous subsequence of segments.
[0018] 3034943 15 If the reading point is not in this range, it is because it is a dead interval (the existence of which is caused for example by a manual feedback from the user to a point past and away from the content, to review a particular detail, or to a jump in the future, resulting in the recovery from the first buffer M1 associated segments since the periodicity of the first verification is much lower than that of the second verification), the set of converted segments of the latter are thus advantageously removed from the second buffer memory M2. If the reading point is in this range ("active" interval such as the interval visible in FIG. 2), then step (c) is implemented, and thus the oldest converted segments of such that the second buffer M2 stores a maximum number of converted segments disposed downstream of a reading point of said content.
[0019] Equipment and computer program product According to a second aspect, the invention relates to the client equipment 11 for implementing the present method of reading a content. This equipment 11 comprises as explained: A first buffer M1 temporarily storing at least one raw segment of a content consisting of a sequence of segments, each raw segment being in a format adapted for the transfer within the even network at-par 10 (and advantageously unsuitable for reading on the equipment 11); A second buffer memory M2 temporarily storing at least one converted segment of said content, each converted segment corresponding to a raw segment converted into a format adapted for reading on the equipment 11 (and in particular unsuitable for the transfer within the peer-to-peer network 10); and data processing means 110. The data processing means 110, typically a processor, are configured by the implementation of: a conversion module of a raw segment of the first buffer memory Ml, and storing said converted segment 35 in the second buffer memory M2; A reading module from the second buffer memory M2 of at least one fragment of a converted segment disposed at a reading point of said content; a module for deleting said second buffer memory M2 from at least one converted segment disposed downstream of said reading point, the conversion and deletion modules being configured so that the second buffer memory M2 stores as explained a number understood; between a minimum number and a maximum number of converted segments disposed upstream of said read point, and a number less than or equal to a maximum number of converted segments disposed downstream of said read point. In other aspects, the invention relates to a computer program product comprising code instructions for executing (on data processing means, in particular those of the client equipment 11) a method according to the first aspect of the invention for continuously reading on a client device 11 a content broadcast within a peer-to-peer network 10 of client equipment 11, 12, as well as storage means readable by a device computer (eg a memory of this client equipment 11) on which this computer program product is found.
权利要求:
Claims (14)
[0001]
REVENDICATIONS1. A method of continuously reading on client equipment (11) broadcast content within a peer-to-peer network (10) of client equipment (11, 12), said content consisting of a sequence of segments, the client equipment (11) comprising a first buffer memory (M1) temporarily storing at least one raw segment of said content, each raw segment being in a format adapted for transfer within the peer-to-peer network (10) , the method being characterized in that it comprises the implementation by data processing means (110) of the equipment (11) of steps of: (a) converting into a format suitable for reading on the equipment (11) of at least one raw segment of the first buffer memory (M1), and storing said converted segment in a second buffer memory (M2) of the equipment (11), so that the second buffer memory ( M2) stores a number between a minimum number and a maximum number of converted segments s arranged upstream of a reading point of said content; (b) reading from the second buffer (M2) at least one fragment of the converted segment disposed at said reading point; (c) Deleting said second buffer memory (M2) from at least one converted segment disposed downstream of said reading point, so that the second buffer memory (M2) stores a number less than or equal to a maximum number of converted segments disposed downstream of a reading point of said content, the associated raw segment being temporarily stored in the first buffer memory (M1).
[0002]
The method of claim 1, wherein step (a) comprises preliminarily querying said raw segment with other client equipment (12) of the peer-to-peer network (10).
[0003]
The method of claim 2, wherein step (a) comprises receiving said raw segment from a content server (2) connected to the peer-to-peer network (10) if it could not be recovered completely from another equipment (12) of the peer-to-peer network (10). 3034943 18
[0004]
4. Method according to one of claims 1 to 3, wherein said format of the raw segments is not suitable for reading on the equipment (11), and said format of the converted segments is not suitable for transfer within the peer-to-peer network (10).
[0005]
The method of claim 4, wherein the raw segments are encapsulated in Javascript, and the converted segments are encapsulated in a player via an HTML5 video tag or a Flash module. 10
[0006]
6. Method according to one of claims 1 to 5, wherein the minimum number and the maximum number of converted segments disposed upstream of a reading point of said content are such that the second buffer memory (M2) contains between 5 and 100 seconds, preferably between 15 and 60 seconds, of upstream segments.
[0007]
7. Method according to one of claims 1 to 6, wherein the maximum number of converted segments disposed downstream of a reading point of said content is such that the second buffer memory (M2) contains less than 30 seconds, preferably less than 20 seconds, preferably less than 10 seconds, downstream segments.
[0008]
The method according to one of claims 1 to 7, comprising: the first checking at a first periodicity that the second buffer memory (M2) stores a number greater than said minimum number of converted segments arranged upstream of said reading point; and / or the second checking at a second periodicity that the second buffer memory (M2) stores a number less than said maximum number of converted segments disposed downstream of said reading point; The method comprising the implementation of step (a) in case of negative result of the first verification, and the implementation of step (c) in case of negative result of the second verification. 3034943 19
[0009]
9. The method of claim 8, wherein the first periodicity is at least ten times greater than the second periodicity.
[0010]
10. Method according to one of claims 8 and 9, wherein the second periodicity is such that the time interval between two implementations of the second verification is less than the content duration corresponding to the maximum number of stored downstream segments. in the second buffer (M2). 10
[0011]
11. Method according to one of claims 1 to 10, wherein the data processing means of the equipment (110) are configured to maximize the number of raw segments stored in the first buffer memory (M1). 15
[0012]
Client equipment (11) of a peer-to-peer network (10) of client equipment (11, 12), characterized in that it comprises a first buffer memory (M1) temporarily storing at least one raw segment content consisting of a sequence of segments, each raw segment being in a format adapted for transfer within the peer-to-peer network (10); A second buffer memory (M2) temporarily storing at least one converted segment of said content, each converted segment corresponding to a raw segment converted into a format adapted for reading on the equipment (11); Data processing means (110) configured by implementing: o a conversion module of a raw segment of the first buffer memory (M1), and storing said converted segment in the second buffer memory (M2 ); O a read module from the second buffer memory (M2) of at least one fragment of a converted segment disposed at a reading point of said content; a module for deleting from said second buffer memory (M2) at least one converted segment disposed downstream from said read point, the conversion and deletion modules being configured so that the second buffer memory (M2) stores a number between a minimum number and a maximum number of converted segments disposed upstream of said read point, and a number less than or equal to a maximum number of converted segments disposed downstream of said read point.
[0013]
13. Computer program product comprising code instructions for the execution of a method according to one of claims 1 to 11 for continuously reading on a client equipment (11) a content broadcast within a 10 peer-to-peer network (10) of client equipment (11, 12), when said program is run on a computer.
[0014]
14. A storage medium readable by a computer equipment on which a computer program product comprises code instructions for executing a method according to one of claims 1 to 11 for continuous playback on a client device ( 11) broadcast content within a peer-to-peer network (10) of client equipment (11, 12).
类似技术:
公开号 | 公开日 | 专利标题
EP3281411A1|2018-02-14|Method for continuously reading, on a client device, content broadcast within a peer-to-peer network
EP1617591A1|2006-01-18|Method and server for peer-to-peer distribution of files requested for download
EP3156920B1|2018-09-26|Method for broadcasting content in a computer network
EP2856719B1|2018-04-25|Technique for communication in an information-centred communication network
EP2332332A1|2011-06-15|Method and device for redirecting a data flow monitoring query
WO2020193754A1|2020-10-01|Method for broadcasting streaming content in a peer-to-peer network
FR3023665A1|2016-01-15|METHOD AND DEVICE FOR REMOTELY RECORDING VIDEO PROGRAMS.
EP3205067B1|2021-04-28|Broadcasting contents by streaming in a peer-to-peer network
EP2083554A1|2009-07-29|Method for direct transmission of content intended to be recovered later in P2P mode after being split, and associated control device and equipment
EP3092777B1|2018-09-26|Method of processing the restitution error in respect of a digital content
FR3054765B1|2019-08-23|METHOD FOR READING EQUIPMENT OF MULTIMEDIA CONTENT WITH TARGET DELAY IN RELATION TO DIRECT LESS THAN MAXIMUM DELAY GIVES
EP3840335A1|2021-06-23|Reception of digital content in trick mode
EP3243315A1|2017-11-15|Method of protocol management and operation of a content distribution network
FR3079099A1|2019-09-20|METHOD FOR DIFFUSION OF CONTENT
WO2009095590A1|2009-08-06|Method for transmitting vod content
FR3019429A1|2015-10-02|METHOD AND DEVICE FOR CONTROLLING DOWNLOAD OF MULTIMEDIA CONTENT
EP2604019B1|2019-06-19|Method for slowing down, or even eliminating, the illegal propagation of a protected video content broadcast by streaming in a peer-to-peer network
FR3005386A1|2014-11-07|METHOD AND DEVICE FOR PROVIDING A PART ALREADY DIFFUSED FROM A MULTIMEDIA STREAM, USER TERMINAL, CORRESPONDING COMPUTER PROGRAM AND MEDIUM STORAGE MEDIUM
WO2020234030A1|2020-11-26|Rendering of background or insertion content as part of an adaptive progressive download |
FR3093605A1|2020-09-11|A method of accelerated browsing of digital content obtained by adaptive progressive download |, manager, media player and corresponding computer program.
EP2553900B1|2020-12-30|Adaptable data stream transmission
FR3109046A1|2021-10-08|Method of managing an audio stream read synchronously on a reference clock
WO2016156386A1|2016-10-06|System for broadcasting audio and/or video content via a local wifi network, and devices implementing the method
FR3096210A1|2020-11-20|A method of transmitting digital content having several versions accessible from a content server to a playback terminal.
FR3075543A1|2019-06-21|METHOD FOR DOWNLOADING A CHAIN FOR ZAPPING A DIGITAL CHAIN BASED ON USER BEHAVIOR
同族专利:
公开号 | 公开日
EP3281411A1|2018-02-14|
US10341035B2|2019-07-02|
WO2016162639A1|2016-10-13|
US20180138998A1|2018-05-17|
FR3034943B1|2017-04-14|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
WO2006021909A1|2004-08-27|2006-03-02|Koninklijke Philips Electronics N.V.|Method of distributing multimedia content|
US20130044260A1|2011-08-16|2013-02-21|Steven Erik VESTERGAARD|Script-based video rendering|
US20140019593A1|2012-07-10|2014-01-16|Vid Scale, Inc.|Quality-driven streaming|
US8037506B2|2006-03-03|2011-10-11|Verimatrix, Inc.|Movie studio-based network distribution system and method|
US20080256255A1|2007-04-11|2008-10-16|Metro Enterprises, Inc.|Process for streaming media data in a peer-to-peer network|
US20090150480A1|2007-12-08|2009-06-11|Xiyuan Xia|Publishing Assets Of Dynamic Nature In UPnP Networks|
CA2821466A1|2009-09-26|2011-03-31|Disternet Technology Inc.|System and method for micro-cloud computing|
US9532092B1|2009-12-30|2016-12-27|Akamai Technologies, Inc.|Multiple bitrate format-agnostic streaming architecture|
US8423606B1|2010-04-27|2013-04-16|Adobe Systems Incorporated|Data framing|
US8918533B2|2010-07-13|2014-12-23|Qualcomm Incorporated|Video switching for streaming video data|
FR2963523B1|2010-07-29|2012-09-07|Myriad France|MOBILE TELEPHONE COMPRISING A FLOW BROADCAST SERVER WITH FILE DOWNLOAD ACTIVATION MEANS FOR ITS DELIVERY|
FR2963525B1|2010-07-29|2012-09-07|Myriad France|MOBILE TELEPHONE COMPRISING A FLOW BROADCAST SERVER WITH MEANS FOR CONTROLLING THE TRANSFORMATION OF A FILE BEFORE ITS BROADCAST|
US9276997B2|2011-01-14|2016-03-01|Millind Mittal|Web browser proxy—client video system and method|
US8554938B2|2010-08-31|2013-10-08|Millind Mittal|Web browser proxy-client video system and method|
WO2012030178A2|2010-09-01|2012-03-08|한국전자통신연구원|Method and device for providing streaming content|
US20120233345A1|2010-09-10|2012-09-13|Nokia Corporation|Method and apparatus for adaptive streaming|
US20120265853A1|2010-12-17|2012-10-18|Akamai Technologies, Inc.|Format-agnostic streaming architecture using an http network for streaming|
JP2012151849A|2011-01-19|2012-08-09|Nhn Business Platform Corp|System and method of packetizing data stream in p2p based streaming service|
US8464304B2|2011-01-25|2013-06-11|Youtoo Technologies, LLC|Content creation and distribution system|
US20130031211A1|2011-01-29|2013-01-31|Dustin Johnson|Feedback oriented private overlay network for content distribution|
US9094263B2|2011-02-28|2015-07-28|Bittorrent, Inc.|Peer-to-peer live streaming|
US8489760B2|2011-03-31|2013-07-16|Juniper Networks, Inc.|Media file storage format and adaptive delivery system|
US9066115B1|2011-07-29|2015-06-23|Arris Enterprises, Inc.|Structuring dynamic advertisement breaks in video manifest files|
CN103002274B|2011-09-16|2016-05-18|腾讯科技(深圳)有限公司|A kind of mobile multimedia real-time transcoding Play System and method of downloading based on off-line|
US8644674B2|2012-06-01|2014-02-04|Limelight Networks, Inc.|Control layer indexed playback|
US9124947B2|2013-09-04|2015-09-01|Arris Enterprises, Inc.|Averting ad skipping in adaptive bit rate systems|
US9244916B2|2013-10-01|2016-01-26|Penthera Partners, Inc.|Downloading media objects|
US10019517B2|2014-05-06|2018-07-10|Tivo Solutions Inc.|Managing media content upload groups|
WO2015171835A1|2014-05-06|2015-11-12|Tivo Inc.|Cloud-based media content management|
US9692800B2|2014-06-11|2017-06-27|Google Inc.|Enhanced streaming media playback|
CA3110341A1|2014-06-26|2015-12-30|Arris Enterprises Llc|Server side adaptive bit rate control for http streaming clients|
US9894130B2|2014-09-23|2018-02-13|Intel Corporation|Video quality enhancement|
US9578395B1|2014-09-30|2017-02-21|Amazon Technologies, Inc.|Embedded manifests for content streaming|
US9838760B2|2014-12-16|2017-12-05|Arizona Board Of Regents On Behalf Of Arizona State University|Systems and methods for name-based segmented media acquisition and distribution framework on a network|
US9769536B2|2014-12-26|2017-09-19|System73, Inc.|Method and system for adaptive virtual broadcasting of digital content|WO2018154698A1|2017-02-24|2018-08-30|株式会社日立製作所|File storage, object storage, and storage system|
FR3094597B1|2019-03-27|2021-06-11|Streamroot|Method of streaming content in a peer-to-peer network|
CN110213604B|2019-05-27|2021-08-20|北京奇艺世纪科技有限公司|Live video sharing method, system and device and computer readable storage medium|
EP3873097A1|2020-02-28|2021-09-01|Streamroot|Method for playing on a player of a client device a content streamed in a network|
EP3886451A1|2020-03-26|2021-09-29|Streamroot|Method for playing on a player of a client device a content streamed in a network|
法律状态:
2016-05-13| PLFP| Fee payment|Year of fee payment: 2 |
2016-10-14| PLSC| Search report ready|Effective date: 20161014 |
2017-04-07| PLFP| Fee payment|Year of fee payment: 3 |
2018-04-13| PLFP| Fee payment|Year of fee payment: 4 |
2020-03-12| PLFP| Fee payment|Year of fee payment: 6 |
2021-03-10| PLFP| Fee payment|Year of fee payment: 7 |
优先权:
申请号 | 申请日 | 专利标题
FR1552976A|FR3034943B1|2015-04-07|2015-04-07|METHOD FOR CONTINUOUS READING ON CUSTOMER EQUIPMENT OF DIFFUSE CONTENT WITHIN A PAIR AUDIO NETWORK|FR1552976A| FR3034943B1|2015-04-07|2015-04-07|METHOD FOR CONTINUOUS READING ON CUSTOMER EQUIPMENT OF DIFFUSE CONTENT WITHIN A PAIR AUDIO NETWORK|
EP16721873.4A| EP3281411A1|2015-04-07|2016-04-07|Method for continuously reading, on a client device, content broadcast within a peer-to-peer network|
US15/564,392| US10341035B2|2015-04-07|2016-04-07|Method for continuously playing, on a client device, a content broadcast within a peer-to-peer network|
PCT/FR2016/050797| WO2016162639A1|2015-04-07|2016-04-07|Method for continuously reading, on a client device, content broadcast within a peer-to-peer network|
[返回顶部]